Web Dynpro es una tecnologÃa de SAP para desarrollar aplicaciones web interactivas. Floorplan Manager (FPM) es una herramienta que permite construir aplicaciones Web Dynpro basadas en configuraciones de diseño predefinidas, facilitando la creación de interfaces de usuario consistentes y reutilizables. FPM proporciona componentes estandarizados, como formularios, tablas y vistas de árbol, que pueden ser fácilmente configurados y extendidos según las necesidades del negocio.
En esta guÃa, explicaremos cómo agregar un nuevo campo a una aplicación FPM para mostrar un detalle adicional. Este campo será solo de lectura y se llenará con información relevante obtenida de la lógica de negocio implementada.
La webdynpro de FPM, tiene muchas funcionalidades entre las cuales seria la Hoja de ruta. Dentro, de las cuales se desea agregar un campo adicional, para mostrar un detalle
* Obtenemos los regisotros de pantalla
ME->CORE_OBJECT->MO_CONTEXT->GET_ROWS( IMPORTING ET_ROW = LT_ORD_OPER ).
* Los recorremos y aplicamos una lógica de modificación para los textos
LOOP AT LT_ORD_OPER ASSIGNING FIELD-SYMBOL().
DATA(LV_INDEX) = SY-TABIX.
REFRESH: LT_NODE_ID, LT_NODE_DATA.
MOVE-CORRESPONDING TO LS_NODE_ID.
APPEND LS_NODE_ID
TO LT_NODE_ID.
ME->CORE_OBJECT->MO_APPLICATION_MODEL->RETRIEVE(
EXPORTING
IV_NODE_NAME = CL_EAMS_MP_TL=>GC_NODE-OPER_LTXT
IT_NODE_ID = LT_NODE_ID
IMPORTING
ET_NODE_DATA = LT_NODE_DATA ).
READ TABLE LT_NODE_DATA
ASSIGNING FIELD-SYMBOL()
INDEX 1.
IF SY-SUBRC IS INITIAL.
READ TABLE ME->CORE_OBJECT->GT_DATA_AUX
ASSIGNING FIELD-SYMBOL()
WITH KEY EAMS_PLNTY = -EAMS_PLNTY
EAMS_VORNR = -EAMS_vornr
EAMS_UVORN = -EAMS_uvorn.
IF SY-SUBRC IS INITIAL.
= .
ELSE.
APPEND TO ME->CORE_OBJECT->GT_DATA_AUX.
ENDIF.
SPLIT -ZZTEXTO AT CL_ABAP_CHAR_UTILITIES=>NEWLINE INTO TABLE DATA(LT_SPLIT).
LOOP AT LT_SPLIT ASSIGNING FIELD-SYMBOL().
IF SY-TABIX EQ 01.
-ZZTEXTO = .
ELSE.
-ZZTEXTO = |{ -ZZTEXTO } { }|.
ENDIF.
ENDLOOP.
"ACA VA LA LOGICA, DE LO QUE QUIERES MOSTRAR EN EL CAMPO
"ACA ENVIAMOS EL VALOR AL CAMPO NUEVO ZZTEXTO
IF SY-SUBRC IS INITIAL.
DELETE LT_LINES INDEX 1.
LOOP AT LT_LINES ASSIGNING FIELD-SYMBOL().
IF SY-TABIX EQ 01.
-ZZTEXTO = -TDLINE.
ELSE.
-ZZTEXTO = |{ -ZZTEXTO } { -TDLINE }|.
ENDIF.
ENDLOOP.
ENDIF.
REFRESH LT_SPLIT.
SPLIT -ZZTEXTO AT CL_ABAP_CHAR_UTILITIES=>NEWLINE INTO TABLE LT_SPLIT.
UNASSIGN .
LOOP AT LT_SPLIT ASSIGNING .
IF SY-TABIX EQ 01.
-ZZTEXTO = .
ELSE.
-ZZTEXTO = |{ -ZZTEXTO } { }|.
ENDIF.
ENDLOOP.
"GUARDAMOS LOS CAMBIOS EN LA PANTALLA
ME->CORE_OBJECT->MO_CONTEXT->SET_ROW( IV_INDEX = LV_INDEX IS_ROW = ).
ENDIF. "FIN DE VALIDACION NODO DE GRILLA
ENDLOOP.
ENDIF.
ENDIF.
ENDIF. "Fin cosulta de valores
ENDLOOP.