[*]
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…
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:
{
//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
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
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073