Crear un AUTHORITY-CHECK

1 -Creamos en la SU20 un ámbito de autorización (elemento de dato) que luego usaremos en el objeto. image

Nombre del campo Z____ y ponemos el elemento de Dato correspondiente a ese campo.

image

y luego image

2 –Creamos la clase de autorización en la SU21

image

image

y luego posicionandonoss en la clase recién creada

image

Elegimos el nombre del objeto y ponemos el campo creado en el punto 1.

image

Grabamos y salimos.

3- Definimos los valores posibles de nuestro campo definido y el BASIS asignará a los roles de los usuarios el objeto de autorización creado y pondrá los valores de cada usuario.

4- En el código fuente

  AUTHORITY-CHECK OBJECT ‘ZBOTONES’    “Objeto creado
      ID ‘ZUCOMM’ FIELD ‘SAVE’.                  “sy-ucomm que tengo que verificar.
  IF sy-subrc EQ 0.
      “El usuario tiene el valor SAVE para dicho campo en su rol
  ELSE.
      “El usuario no tiene el valor SAVE para dicho campo en su rol
  ENDIF.

Redondeo y decimales en ABAP

Muchas veces tenesmo problemas con el redondeo, acá hay algunas instrucciones útiles para el manejo de los mismos.

 

DATA N TYPE P DECIMALS 2.
DATA M TYPE P DECIMALS 2 VALUE '-5.55'.
N = ABS( M ). WRITE: 'ABS: ', N.
N = SIGN( M ). WRITE: / 'SIGN: ', N.
N = CEIL( M ). WRITE: / 'CEIL: ', N.
N = FLOOR( M ). WRITE: / 'FLOOR:', N.
N = TRUNC( M ). WRITE: / 'TRUNC:', N.
N = FRAC( M ). WRITE: / 'FRAC: ', N.
* The output appears as follows:
*
* ABS: 5.55 (nro absoluto)
*
* SIGN: 1.00-
*
* CEIL: 5.00- (redondea hacia arriba)
*
* FLOOR: 6.00- (redondea hacia abajo)
*
* TRUNC: 5.00- (parte entera)
*
* FRAC: 0.55- (parte decimal)