• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
FORMACIÓN SAP

Operaciones aritméticas con diferentes tipos de datos en vistas CDS

By s4pcademy 


[*]

Introducción

Para el cálculo de dos números cualesquiera, necesitamos al menos un operador aritmético. Comprende básicamente operaciones como Suma [+]Resta [-]Multiplicación [*]y División [/]. Y hay diferentes tipos de datos como INT, CHAR, DATS…

Contenido

Por lo general, no podemos realizar un cálculo con parámetros cuyos tipos de datos sean diferentes. En este blog, vamos a ver cómo realizar operaciones aritméticas con diferentes tipos de datos en vistas de CDS. En las siguientes imágenes, se proporciona una lista de tipos de datos y su lógica de conversión.

Si se especifica un tipo de datos integrado del diccionario ABAP para el tipo de datos, no se aplican más restricciones a las combinaciones con «x». Las siguientes reglas se aplican a las otras combinaciones:

  • En combinaciones que usan «y», el tipo de datos de destino debe ser lo suficientemente largo.
  • En combinaciones que usan «z», las longitudes de los tipos de datos deben coincidir exactamente.
  • En el caso de combinaciones con “p” o “d”, no se puede especificar ningún tipo de datos integrado del Diccionario ABAP. En su lugar, se debe especificar un elemento de datos como el tipo de datos de destino.
    1. En combinación con «d», el elemento de datos puede tener un tipo de destino adecuado de acuerdo con la tabla anterior y con cualquier longitud.
    2. En combinación con «p», el elemento de datos debe tener el tipo de datos incorporado y la misma longitud que el tipo de datos del operando.
{

//Division

  division(10,3,4)                 as value1, // [Ans:3.3333]

  div(55,5)                        as value2, // [Ans:11]

  (10.5  / 3.2)                    as value3, // [Ans:3.28125]

// multiplication

  (10  * 3)                        as value4, // [Ans:30]

  (10 *6 * 3)                      as value5, // [Ans:180]

//Modulo

  mod(2,3)                         as value6, // [Ans:2]

// Addition

  (2 +3)                           as value7, // [Ans:5]

  (2.2 + 3.7)                      as value8, // [Ans:5.9]

// (2 + 3.7) as value8--> is not possible as both are different data types

//subtraction

  (2 -3)                           as value9, // [Ans:-1]

  (21 -1)                          as value10, // [Ans:20]

  (21.5 - 1.7)                     as value11, // [Ans:1.98]

//(21.5 - 1) as value11--> is not possible as both are different data types

//BODMAS

  (2+3-4*3)                        as value12, // [Ans:-7]

  cast( 2+3-4*3 as abap.fltp)/ 2.0 as value13  // [Ans:-3.5]

// As ‘/’ only support fltp data type, we changed to fltp

}

Supongamos que tenemos un parámetro 1 como tipo de datos CHAR pero necesitamos realizar una operación aritmética como la suma, no podemos cambiar directamente CHAR a INT como se muestra en la imagen.

Entonces, en tal caso, podemos cambiar el tipo de datos CHAR a INT al tener NUMC como intermedio,

CARACTER –> NUMC –> INT

cast ( cast (parameter1 as abap.numc( 8 )) as  abap.int8)as datatype_int

Conclusión

Usando esta publicación de blog, será fácil comprender las operaciones aritméticas con diferentes tipos de datos y la lógica de conversión entre diferentes tipos de datos, especialmente para principiantes. Comparta amablemente sus comentarios o dudas en una sección de comentarios y siga mi perfil para futuras publicaciones. Y siéntase libre de hacer cualquier pregunta relacionada con datos y análisis en nuestro Comunidad SAP foro y seguimiento para más información relacionada blogs.

Gracias

Referencia

CDS ABAP – cast_expr

Temas relacionados

Fundición

Funciones de cadena

[*]
[*]


SAP Datasphere y asociaciones – Collibra
Previo
Total acumulado/suma acumulada usando la dimensión M_time en la vista de cálculo de HANA
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.