Code: Alles auswählen.
DATA: lv_tknum type tknum value '2000071 ',
ls_vttk TYPE VTTK.
SELECT single * FROM vttk
INTO ls_vttk
WHERE tknum = lv_tknum.
Code: Alles auswählen.
DATA: lv_tknum type tknum value '0002000071 ',
ls_vttk TYPE VTTK.
SELECT single * FROM vttk
INTO ls_vttk
WHERE tknum = lv_tknum.
An der Domäne TKNUM hängt doch einen ALPHA-Konvertierung. Daher hier den Fuba CONVERSION_EXIT_ALPHA_INPUT verwenden. Alles andere ist unsauber.... Wobei, da gab es doch in der neue Syntax eine Kurzform
Code: Alles auswählen.
data(lv_text) = |{ textstring ALPHA = IN }|
Folgende Benutzer bedankten sich beim Autor jocoder für den Beitrag:
DeathAndPain
Wobei das Aufrufen des zum Feld gehörenden Konvertierungsexits zumindest schon mal zum Ausdruck bringt, dass derjenige erkannt hat, dass ein Konvertierungsexit an dem Feld hängt und damit auch gleicht dokumentiert dass das Auffüllen mit Nullen nicht aus Jux passiert sondern weil das Feld das so benötigt. Und ich erwarte eigentlich von jedem erfahrenen Entwickler dass das Aufrufen eines Konvertierungsexits nicht mehr zu irgendwelchen Überlegungen führt sondern dass man weiß was da passiert und man nur noch schaut ob es der ...INPUT oder ...OUTPUT ist.DeathAndPain hat geschrieben: ↑13.08.2020 09:43Wenn links mit Nullen aufgefüllt werden soll, ist es besser nachvollziehbar, wenn der Code genau dies erkennbar tut, als wenn er irgendein Konvertierungsexit aufruft und man erst überlegen muss, was dessen Funktionsweise gewesen ist.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 3):
msfox • ST22 • qyurryus
Das ist doch kein Antipattern. Nicht jedes Programm hat Selektionsbilder wo man das vom Kernel machen lassen kann.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
ST22 • qyurryus
In dem Fall ist es aber einfach FALSCH hier pauschal mit Vornullen aufzufüllen. Die Domäne TKNUM ist vom Type CHAR10. Dort können also auch Buchstaben drauf stehen. Ist dies der Fall, so darf NICHT mit Vornullen aufgefüllt werden.DeathAndPain hat geschrieben: ↑13.08.2020 09:43Sehe ich auch so. Ein Code sollte möglichst sprechend ausdrücken, was er tut, damit er gut lesbar ist. Wenn links mit Nullen aufgefüllt werden soll, ist es besser nachvollziehbar, wenn der Code genau dies erkennbar tut,
Genau der eine Fall läuft - super. Vielleicht schlummern in der Datenbank aber 100 andere Fälle die mit auffüllen von 4 Vornullen nicht laufen....
Das ist so auch nicht richtig. Bzw.: Ich sehe gerade, dass man das auch anders interpretieren kann... Wenn ein Buchstabe vorkommt, dann darf nicht mit Nullen aufgefüllt werden. Ich hatte es so interpretiert, dass alleine die Möglichkeit, dass Buchstaben vorkommen können, ein Auffüllen mit Nullen ausschließt...
Bei Materialnummern ist customizbar ob ALPHA-Konvertierung verwendet wird oder nicht und noch einiges mehr. Ich habe sowohl Kunden die mit führenden Nullen auffüllen als auch solche welche das nicht tun. Und hier zeigt sich eben der Vorteil des Konvertierungsexits. Ich muss nicht im Customizing nachschauen was im System eingestellt ist sondern lasse einfach den Exit MATN1 drüberlaufen und der macht es "richtig"
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
msfox
Code: Alles auswählen.
tknum = zcl_trcktrsr_conversion_exit=>for_rollname( 'TKNUM' )->input( '12345' ).
Kann bei Materialnummern dann die Konvertierung MATN1, wie in der Domäne MATNR fest hinterlegt, übersteuern?black_adept hat geschrieben: ↑13.08.2020 11:18Bei Materialnummern ist customizbar ob ALPHA-Konvertierung verwendet wird oder nicht und noch einiges mehr.