Funktion Gibt den Attributwert im Benutzerformat zurück
Beispiel ABAP
myuservalue =
s10getuservalue( "kunnr" ). 
Aufruf ABAP
data:
  myattrname type string,
  myunitattrname type string,
  myuservalue type string.

myuservalue =
  s10getuservalue(
    exporting
      attrname = myattrname
      unitattrname = myunitattrname ). 
Parameter
Name Typ Bedeutung
attrname string
Attributname
unitattrname string
Einheit oder Währung
uservalue string
Wert im Benutzerformat
Beschreibung Die Methode s10getuservalue() wird vom S10 Framework immer dann aufgerufen, wenn der Wert eines Attributs dem Benutzer angezeigt wird. Die Methode kann aber auch direkt aufgerufen werden, zum Beispiel um in einem Nachrichtentext oder einem generierten Dokument Werte im Benutzerformat einzufügen.

Die Art der Aufbereitung ist wie bei ABAP "Write", d.h. es werden die Benutzereinstellungen bezüglich Dezimal- und Datumsdarstellung sowie ein eventueller Konvertierungsexit berücksichtigt. Der Konvertierungsexit kann für unterschiedliche Anmeldesprachen unterschiedliche Ausgaben erzeugen, zum Beispiel wird für Mengeneinheit "ST" bei Anmeldesprache Deutsch  "ST" ausgegeben und bei Anmeldesprache Englisch "PC".

Eine in der ABAP Klasse definierte "build"-Methode für das Attribut wird falls nötig vor der Ausgabe des Werts aufgerufen.

Falls in der ABAP Klasse zu dem anzuzeigenden Attribut der Name des zugehörigen Einheits- oder Währungsattributs abgelegt ist, wird die Anzahl der Dezimalstellen bei der Ausgabe passend gewählt. 

Beispiel:
ABAP

data:
  kwmeng     type vbap-kwmeng,
  vrkme      type vbap-vrkme. 

constants:
* assign unit attribute
  unit_kwmeng type string value 'vrkme'.

Falls "vrkme" den Wert "ST" hat, also Stück, erfolgt die Ausgabe von "kwmeng" ohne Dezimalstellen.

Sie können den Namen des Attributs, das die Einheit enthält, auch im Methodenaufruf selbst als Parameter mitgeben.

Nicht immer ist das Attribut, das die Einheit enthält, in der gleichen Datenbanktabelle abgelegt wie das Mengenfeld. Beispielweise wird der Lagerbestand in Tabelle "MARD" im Feld "LABST" abgelegt, die zugehörige Lagermengeneinheit ist jedoch in Tabelle "MARA" im Feld "MEINS" (Basismengeneinheit) enthalten.

Wenn Sie zur Datenbanktabelle "MARD" nun eine Klasse z.B. "db_mard" anlegen oder in den S10 Uitilities generieren, fehlt Ihnen dort die Mengeneinheit. Um auch für diesen Fall eine korrekte Ausgabe zu erhalten, können Sie wie folgt vorgehen:

Sie nehmen in der Klasse "db_mard" das Einheitenfeld als weiteres Attribut auf und implementieren eine "build"-Methode, welche die Einheit aus Datenbanktabelle "MARA" liest. Das S10 Framework ruft automatisch immer dann, wenn sich die Materialnummer geändert hat, vor der Anzeige von "LABST" die build-Methode der zugehörigen Mengeneinheit auf und die Anzeige erfolgt korrekt gemäss der Basismengeneinheit des Materials:

ABAP

* Class db_mard
    data:
      matnr type mard-matnr, " Material
      werks type mard-werks, " Plant
      lgort type mard-lgort, " Storage Location
      labst type mard-labst, " Unrestricted
      umlme type mard-umlme, " Stock in transfer
      insme type mard-insme, " In Quality Insp.
      retme type mard-retme. " Returns 
 
      meins type mara-meins. " Base unit    constants:
* assign unit attribute
      unit_labst  type string value 'meins',
      unit_umlme  type string value 'meins',
      unit_insme  type string value 'meins',
      unit_retme  type string value 'meins'. 
 * declare method and dependency
 methods:
      build_mara_data
        importing
          matnr type mara-matnr
        exporting
          meins type mara-meins. 
 * implement method
 method build_mara_data.
    select single meins from mara into meins
              where matnr = matnr.
 endmethod. 
Komponente S10 Framework