¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

¿Cómo calcular fórmulas dinámicas en ABAP de forma eficiente?

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 23 Vistas
0
Cargando...

Estimados todos,

¿ABAP proporciona algo similar a un analizador de fórmulas?

Me gustaría tener la posibilidad de calcular correctamente algo como:

2*(A B) /(C D)

la fórmula se proporciona como una cadena de forma dinámica, y los valores de los parámetros se almacenan en algún lugar.

¿Existe algún analizador que me ayude a calcular correctamente?

¿Aparte de usar GENERATE SUBROUTINE POOL?

Saludos cordiales,

Christoph Aschauer

El mensaje fue editado por:

Christoph Aschauer

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Hola,

El siguiente ejemplo de código utiliza JavaScript para evaluar la expresión, debes reemplazar las variables en la expresión con los valores reales. También puedes usar el método BIND de CL_JAVA_SCRIPT para enlazar variables ABAP a variables JS.

===============================

REPORT evaluate_formula.

DATA source TYPE string.

DATA return_value TYPE string.

DATA js_processor TYPE REF TO cl_java_script.

js_processor = cl_java_script=>create( ).

CONCATENATE

'var result = '

' 2*(2 + 6)/4 '

';'

'result; '

INTO source SEPARATED BY cl_abap_char_utilities=>cr_lf.

return_value = js_processor->evaluate( source ).

WRITE return_value.

==================================

Saludos cordiales,

Rao A

Mensaje editado por:

Rao Arimilli

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¡Hola a todos!

He resuelto los problemas de la siguiente manera:

- Limitación de 36 subrutinas: programa SUBMIT. (este programa genera los conjuntos genéricos de subrutinas (comunicación a través de DB u objetos compartidos posible)

- Limitación de línea de conjunto de subrutinas (255 caracteres).

También se trata de un cálculo ejecutable:

calc =

(

3

+

7

)

*

2

.

Por lo tanto, ya no hay restricción de línea al tener una cadena de fórmula muy larga para ser procesada de manera genérica.

Christoph

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

resolví el problema por mi cuenta. Por favor, ve el comentario anterior o siéntete libre de preguntar.

Christoph

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?