¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

¡Acceso SAP S/4HANA desde $100!

Acceso a SAP

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

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 77 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@primeconsultor.com

+1 (305) 285-8622

© 2025 Todos los derechos reservados.

Desarrollado por Prime Consultor

¡Hola! Soy Diana, asesora académica de Prime Consultor, indícame en que Academia SAP estás interesado, saludos!
Hola ¿Buscas Academias SAP?