Moin moin,
ich hoffe, ich schaffe es, mich klar und einfach auszudrücken.
Wir sitzen hier mit drei Programmierern, die jeweils nicht weniger als 10 Jahre Erfahrung in der ABAP-Entwicklung haben. Alle drei sind über folgenden Umstand erstaunt:
Die SAP-Hilfe schreibt zu Domänen-Festwerten:
Der Wertebereich einer Domäne kann durch Angabe von Festwerten eingeschränkt werden. Damit sind für alle Tabellenfelder, die auf diese Domäne verweisen, nur die in den Festwerten eingetragenen Werte möglich. Die Festwerte können aus Einzelwerten und Intervallen bestehen.
Daraus folgt: Wenn ich ein Tabellenfeld habe, das sich auf ein Datenelement bezieht, welches sich auf eine Domäne bezieht, die Festwerte hat, kann ich in dieses Tabellenfeld (zum Beispiel als Dynprofeld dargestellt) nur die Werte eingeben, die als Festwerte in der Domäne festgelegt sind.
Nun habe ich hier folgenden Fall: Ein kundeneigenes Subdynpro zur ME52N (Ändern einer Banf) zeigt ein Feld. Dieses ist Teil einer Struktur, die im dazugehörigen FuBau (zum Exit) mit "data: begin of....fname type..." deklariert ist.
Ich habe also ein Dynpro, das ein Feld enthält. Dies ist im Programm als Teil einer Struktur deklariert (NICHT im DDIC!). Das Feld bezieht sich auf ein Datenelement der Domäne WERKS.
Nun ist die Anforderung: Das sind spezielle Werke, da wollen wir nur zwei mögliche Eingaben erlauben. Alles andere wird als falsch abgewiesen. Also kopieren wir diese Domäne WERKS und diese neue Domäne ZWERKS hängen wir ins Datenelement. Sodann geben wir die zwei Festwerte ein, aktivieren und schon kann man in das Dynprofeld nur noch diese zwei Werte eingeben. Das würde sich mit der oben zitierten F1-Hilfe decken.
Dem ist aber nicht so! Ich kann in das Feld beliebige Werte einpflegen und beim Sichern erhalte ich keine Meldung. Die Werthilfe(!!!) zeigt mir nur die zwei Werte ' ' und '9100' an, aber händisch eingeben kann ich, was immer ich will, es wird anstandslos übernommen und ich kann die Banf auch prüfen oder sichern.
Nun folgende Fragen:
1. Könnt ihr das bestätigen und wenn ja: Wie deckt sich das mit dem Text aus der F1-Hilfe?
2. Was ist die einfachste Methode, den Wert zu prüfen? Ich könnte ins PAI [1] einen select auf DD07L verwenden - aber mich wundert, dass mir und zwei anderen sowas in jeweils zehn Jahren Berufserfahrung noch nicht untergekommen ist. Bis vor einer halben Stunde hätte ich noch drauf gewettet, dass die Eingabe von Festwerten die Eingabemöglichkeiten einschränkt.
3. Angenommen, ich nehme weise dem Dynprofeld die Eigenschaft "Dropdown-Menü" zu (damit ich auf diesem Wege nur noch die Festwerte zulasse). Ist DAS dann noch Batch-Input-fähig? Dieser Umstand ist leider von zentraler Bedeutung. Es gibt Batch-Inputs zu dem Dynpro und die wollen in dem Feld auch was eingeben können.
Ralf *ausgesprochen bestürzt - ohne witz!
[1] Eigentlich: In den User-Exit, der vor dem Sichern aktiv wird