Domänenwerte aus Valuetable

Eine Domäne kann neben Domänen Fixwerten auch eine Wertetabelle, eine Wertetabelle mit Texttabelle oder eine Suchhilfe hinterlegt haben. Das Auslesen von Domänen Fix Values kann relativ einfach mit dem Funktionsbaustein DD_DOMVALUES_GET erledigt werden.

Komplexer wird es da schon bei einer Wertetabelle mit/ohne Texttabelle. Zuerst muss der Aufbau der Suchhilfe ermittelt werden.

CALL FUNCTION 'DD_SHLP_GET_HELPMETHOD'
 EXPORTING
  tabname           = iv_tabname
  fieldname         = iv_fieldname
  langu             = sy-langu
  get_entitytab     = abap_true
 CHANGING
  shlp              = wa_shlp
 EXCEPTIONS
  field_not_found   = 1
  no_help_for_field = 2
  OTHERS            = 3.

 

Läuft das Coding in einer klassischen GUI Anwendung, dann muss mit der Funktion DD_SHLP_GET_DIALOG_INFO die zuvor ausgelesen Suchhilfekonfiguration noch mit zusätzlichen Daten angereichert werden.

CALL FUNCTION 'DD_SHLP_GET_DIALOG_INFO'
 CHANGING
  shlp = wa_shlp.

 

Nun kann man auch schon damit beginnen die Valuehelp Parameter auszulesen.

* Get help values
CALL FUNCTION 'DD_SHLP_GET_HELPVALUES'
 TABLES
  output_values               = lt_output
  output_descr                = lt_output_descr
 CHANGING
  shlp                        = wa_shlp
 EXCEPTIONS
  cursor_selection_impossible = 1
  OTHERS                      = 2.

 

Dieser Funktionsbaustein liefert zwei Tabellen. In der Tabelle OUTPUT_VALUES stehen im Feld STRING die gewünschten Daten. Diese sind allerdings, wie der Name schon andeutet, in einem String konkateniert. Da die einzelnen Werte durch Blanks getrennt sind, ist es relativ einfach diese nun in ein entsprechendes Datenobjekt zu übernehmen. Alle nötigen Feldinformationen werden in der zweiten Rückgabetabelle OUTPUT_DESCR geliefert.

Ist das Datenobjekt erstellt, dann reicht zum Schluß ein Loop über die Tabelle OUTPUT_VALUES und ein Move in die erzeugte Struktur.

Posted on 20. März 2015 in ABAP, Blog

Back to Top