Funktion Gibt den Attributwert im Benutzerformat zurück
Beispiel myuservalue =
s10getuservalue( "kunnr" ).
Aufruf 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:
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:

* Class db_mard
    
data:
      
matnr type mard-matnr, Material
      werks type mard-werks" Plant
   
   lgort type mard-lgort" Storage Location
      labst 
type mard-labstUnrestricted
      
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