Skip to content

Latest commit

 

History

History
373 lines (249 loc) · 4.77 KB

changing-a-unit-of-measurement-2451351.md

File metadata and controls

373 lines (249 loc) · 4.77 KB

Changing a Unit of Measurement

Use method UPDATE to change a unit of measurement.

Caution:

Changing the initial set of configurations has implications. Before proceeding with any change, familiarize yourself with the warnings in Units of Measurement.


Parameter Name

Field Name

Value Help

UNIT

 

Internal unit of measurement

UNIT_UPD_TS

 

Structure for updating a unit of measurement

Caution:

Be aware that all the fields belonging to the structure will be updated.

 

COMMERCIAL

Commercial/external measurement unit format

 

TECHNICAL

Technical measurement unit format

 

DEC_ROUND

Number of decimal places to which this measurement unit should be rounded for conversion

 

NUMERATOR

Numerator for conversion to SI unit

 

DENOMINATOR

Denominator for conversion into SI unit

 

EXPONENT

Base ten exponent for conversion to SI unit

 

CONSTANT

Additive constant for conversion to SI unit

 

DEC_DISP

Number of decimal places with which this measurement unit is displayed

 

ISOCODE

ISO code for measurement units. An ISO code can be assigned to several internal measurement units of a dimension.

 

PRIMARY

Unit of measure flagged as a primary unit for an ISO code

Space: Not primary

‘X’: Set as primary

 

TEXT

Description of a unit of measurement

 

LONG_TEXT

Long description of a unit of measurement


Parameter Name

Value Help

ERROR

Space: No error

‘X’: Save error

Note:

Class exception CX_UOM_ERROR is raised to check the integrity of the data import parameters.

Sample Code:

CLASS zcl_uom_unit_update_test DEFINITION 
  PUBLIC 
  FINAL 
  CREATE PUBLIC. 
 
  PUBLIC SECTION. 
    INTERFACES if_oo_adt_classrun. 
  PROTECTED SECTION. 
  PRIVATE SECTION. 
ENDCLASS. 
 
CLASS zcl_uom_unit_update_test IMPLEMENTATION. 
  METHOD if_oo_adt_classrun~main. 
    DATA(lo_uom) = cl_uom_maintenance=>get_instance( ).

TRY.
lo_uom->read( EXPORTING  unit       = 'ZYX'
              IMPORTING unit_st = DATA(ls_unit) ).

DATA(ls_upd_unit) = VALUE cl_uom_maintenance=>ty_uom_upd_ts(
                    BASE CORRESPONDING #( ls_unit )
                                         commercial   = 'ZYA'
                                         technical    = 'ZYA'
                                         denominator  = '1'
                                         numerator    = '1'
                                         dec_disp     = '5'
                                         long_text    = 'Updates Unit'
                                         text         = 'Upd Unit' ).

lo_uom->update( EXPORTING unit        = 'ZYX'
                          unit_upd_ts = ls_upd_unit
                IMPORTING error 	 = DATA(lv_error) ).    

      CATCH cx_uom_error INTO DATA(lo_error).
        out->write( |Exception raised| ).
        out->write( lo_error->get_text( ) ).
    ENDTRY.
    IF lv_error = abap_true.
      out->write( |Error occurred while updating the data in the database| ).
    ENDIF.
  ENDMETHOD. 
ENDCLASS.