Vergleich ähnlich Like

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Vergleich ähnlich Like

Beitrag von thomasxy (ForumUser / 36 / 0 / 0 ) »
Hallo,

ich komme mal wieder nicht mehr weiter bei folgendem Code

UPDATE wlbm SET abbnr = 'FALSE'
WHERE atbnr =1_str_wlbm_sapmatnr-atbnr

Dabei habe ich im Feld atbnr eine Artikelnummer die zum Beispiel 008120 lautet
und aktuell im Zugriff in 1_str_wlbm_sapmatnr-atbnr habe ich den Wert 8120

Das sollte bei diesem Vergleich als gleich gelten.
Da die führenden Nullen in der Spalte bzw im Feld atbnr nicht berücksichtigt werden sollen.

118120 = 8120 soll falsch ergeben

Also folgende Regel beim Vergleich
1_str_wlbm_sapmatnr-atbnr = atbnr aber die vorangestellten Nullen nicht betrachten.

hat jemand einen Tipp für mich.
Geht sowas mit Like ? Wenn ja wie.

Über Tipps würde ich mich freuen.

danke

gruß
thomas

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


Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo thomasxy,

benutze den Konvertierungs-Exit CONVERSION_EXIT_ALPHA_INPUT auf 1_str_wlbm_sapmatnr-atbnr und du erhälst den WERT '008120' mit dem Du auf der Datenbank den gewünschten Eintrag findest.
Voraussetzung: das Feld ATBNR ist 6-stellig und zeichenartig...

Vom Arbeiten mit Vergleichen rate ich ab, da die Nebenwirkungen nicht immer ersichtlich sind...
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von thomasxy (ForumUser / 36 / 0 / 0 ) »
noch zur Info bei meiner Fragestellung

Meine Artikelnummern haben immer unterschiedliche Längen und sind von Typ char.

Ein ausführlicheres Beispiel wie die Konstellation der Artikelnummern aussieht

008120 <--> 8120 Ergenis bei Vergleich OK
234< --> 1234 Ergebnis bei Vergleich Falsch
0234 <--> 234 Ergebnis bei Vergleich OK
234 <--> 356 Ergebnis bei Vergleich Falsch
8120 <--> 8120 Ergebnis bei Vergleich OK
00012 <--> 12 Ergbnis bei Vergleich OK
00012 <--> 121 Ergebnis bei Vergleich Falsch

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo thomasxy,

wenn die Daten auf der Datenbank kein geregeltes Format haben, wirst Du mit einfachen Mustervergleichen nicht weiterkommen.

Sind das kundeneigene Daten. Dann solltet Ihr dafür sorgen, dass sie SAP-typisch unter Verwendung eines Convertierungs-Exits abgelegt werden. Ansonsten ist das nur programmlokal zu lösen.

Ab ca. Release 6.40 werden RegEx-Klassen angeboten, damit ist es aber _nicht_ möglich direkt per SQL auf die Datenbank zu gehen.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Hallo Thomas,

mit LIKE wirst du nicht weiterkommen, so wie meine Vorposter ja schon angemerkt haben. Aber das sollte dich nicht davon abhalten das trotzdem anzugehen, indem du ein wenig um die Ecke denkst.

Um bei deinem Beispiel
008120 <--> 8120 Ergenis bei Vergleich OK
zu bleiben hier die Vorgehensweise

( Ich nehme an, dass 008120 auf der Datenbank steht ).

Statt mit
Update.... WHERE atbnr = <festwert>
solltest du ein
Update.... WHERE atbnr in <range>
verwenden, wobei du deine range sehr einfach folgendermaßen aufbauen kannst

I EQ 8120
I EQ 08120
I EQ 008120
....
I EQ 000000000000008120


Ist eigentlich simpel - sollte aber trotzdem dazu führen, dass du den von dir gewünschten Update machen kannst.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von thomasxy (ForumUser / 36 / 0 / 0 ) »
mir würde es für den Vergleich auch schon ausreichen wenn ich vor atbnr eine bzw 2 Nullen setzte.

Also '00'+'atbnr' und in einer Variablen speichern
'0'+'atbnr' und in einer zweiten Variablen speichern.

Geht das irgendwie über den Move Befehl, dass er eine Null vor den Wert von atbnr schreibt.

Bei meinen versuchen überschreibt er dann die erste bzw. zweite Stelle vom Wert in atbnr.

Gibt es ein Lösung dem Wert atbnr eine Null voranzustellen ohne die erste Position des Wertes zu überschreiben.

Danke

gruß
thomas

Seite 1 von 1

Vergleichbare Themen

1
Antw.
783
Views
Flexible Analyse - oder so ähnlich
von Paret » 06.08.2014 09:23 • Verfasst in ABAP® Core
11
Antw.
18238
Views
Nachricht an bestimme User ähnlich SM02
von codierknecht » 19.12.2007 14:00 • Verfasst in ABAP® für Anfänger
2
Antw.
6144
Views
Tabelleninhalte ändern mit Hilfsprogramm ähnlich wie SE16
von ITEL » 13.01.2006 15:38 • Verfasst in Tips + Tricks & FAQs
3
Antw.
7968
Views
Report aus im hintergrund als Job ausführen (ähnlich SE38)
von OnkelSAP » 22.04.2010 08:25 • Verfasst in ABAP® Core
1
Antw.
2440
Views
Vergleich JSP / BSP
von Tserva » 07.11.2006 21:50 • Verfasst in Java & SAP®

Ü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.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 72
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141