Upload
alberto-j-garrido-checa
View
171
Download
14
Embed Size (px)
Citation preview
MANUAL DE FPM
(Floorplan Manager para Web Dynpro ABAP)
FPM es una aplicación Web Dynpro ABAP e integrado en el entorno de desarrollo Web Dynpro
ABAP.
Floorplan Manager (FPM) es una aplicación Web Dynpro ABAP que proporciona un marco para
el desarrollo de nuevas interfaces de aplicaciones Web Dynpro ABAP consistente con las
directrices de interfaz de usuario de SAP. FPM actualmente le ayuda en la creación y
configuración de interfaces de usuario con las siguientes foorplan:
- Object Instance Floorplan (OIF)
- Overview Page Floorplan (OVP)
- Guided Activity Floorplan (GAF)
- Quick Activity Floorplan (QAF)
Las siguientes áreas de floorplan pueden ser configuradas usando el editor de configuración de
FPM:
- Identification Region (IDR)
- Message Region (MR)
- Context Navigation Region (CNR)
- Roadmap Element
Las áreas Floorplan deben tener una interfaz de usuario compatible con las directrices y FPM
proporciona bloques predefinidos de construcción de interfaz de usuario (UIBBs) para ayudarle
en la creación y configuración de "views" de aplicaciones específicas (freestyle areas) Los
formularios de plantillas de interfaz de usuario comunes, listas, Listas jerárquicas y área de
pestañas, pueden ser configuradas usando el editor de configuración de FPM.
FPM incluye APIs (application programming interfaces / interfaces de programación de
aplicaciones) para funciones comunes como navegación, manejo de pérdida de datos,
mensajería y personalización.
FPM permite la libre modificación de adaptaciones del cliente.
User Interface Building Blocks (UIBB) Desde la perspectiva de FPM, Las UIBB’s son las vistas de interfaz (Ventanas de WebDynpro
ABAP) que son proporcionados por la aplicación externa y no por sí mismo FPM.
Con el fin de que el framework FPM reconozca un UIBB, el componente Web Dynpro que
proporciona la UIBB debe implementar la interfaz de Web Dynpro.
IF_FPM_UI_BUILDING_BLOCK:
La interfaz IF_FPM_UI_BUILDING_BLOCK garantiza que la aplicación Web Dynpro pueda tomar
parte en el bucle de eventos de FPM. Esta interfaz tiene una serie de métodos:
FLUSH El primer método llamado después de que el bucle de eventos de FPM
comience. La UIBB necesita transportar todos los datos modificados desde las vistas a los otros
componentes con los que quiera comunicarse más tarde. Normalmente este transporte se
realiza automáticamente usando el mapeo del contexto de la Web Dynpro, pero este método
se usa cuando los mecanismos automáticos no se están usando.
NEEDS_CONFIRMATION Con este método, se solicita una confirmación para continuar
con el bucle de eventos.
IF_FPM_TRANSACTION_CHECK_BEFORE_SAVE Para realizar chequeos completos de
los datos antes de guardar. Además de la comprobación de consistencia, este método contiene
el procesamiento del evento actual. Para ello, el evento actual se puede identificar a través de
los atributos de MV_EVENT_ID y MO_EVENT_DATA en la instancia del evento IO_EVENT.
Dependiendo de si el evento se ha procesado correctamente o no, el parámetro de salida
EV_RETURN se informará con IF_FPM_CONSTANTS~GC_EVENT_RESULT-OK o con
IF_FPM_CONSTANTS~GC_EVENT_RESULT-FAILED.
PROCESS_EVENT Con este método se realizan las siguientes tareas:
- Procesa el evento actual.
- Chequeo local de consistencia de datos, para informar al usuario de potenciales
errores de entrada de datos en la medida de lo posible. Esto no exime de realizar
chequeos completos antes de guardar con el método IF_FPM_TRANSACTION_CHECK_BEFORE_SAVE
Una implementación típica de PROCESS_EVENT es la siguiente:
IF io_event->mv_event_is_validating = abap_true.
Chequeos locales
ENDIF
CASE io_event->mv_event_id.
WHEN XYZ
Manejar evento y rellenar EV_RETURN de acuerdo con el valor de
IF_FPM_CONSTANTS~GC_EVENT_RESULT
ENDCASE.
AFTER_FAILED_EVENT Este método es llamado por el FPM si un evento no puede ser procesado correctamente. En ese caso, la UIBB necesita asegurarse de que la interfaz de usuario revierte los cambios al estado anterior. Si el método PROCESS_EVENT de la actual UIBB ha sido procesado correctamente, pero el evento en proceso falla debido a un problema en otro UIBB, el evento procesado necesita ser revertido también. El parámetro IV_REVERT indica esta situación. PROCESS_BEFORE_OUTPUT El último método en ser llamado.
Crear una aplicación simple de FPM
Aquí crearemos una aplicación de FPM, basada en OIF o GAF. La aplicación OIF contendrá 2
pestañas, cada una conteniendo una sola pestaña de sub-vista; la aplicación GAF contendrá 2
pasos.
Completaremos la aplicación FPM siguiendo los siguientes pasos:
1. Crear un Web Dynpro Component con las UIBBs requeridas e implementar la interfaz
IF_FPM_UI_BUILDING_BLOCK de la Web Dynpro.
2. Crear una Web Dynpro Aplication y especificar los parámetros de acuerdo con cada
instancia de floorplan que estemos utilizando.
3. Usar el editor de configuración de FPM para crear una configuración para la aplicación.
4. Probar la aplicación.
Una aplicación FPM está compuesta por un número de diferentes Web Dynpro Component,
muchos de las cuales instanciados dinámicamente en tiempo de ejecución. Sin embargo, los 2
siguientes, siempre están presentes:
- Un Component específico del floorplan (FPM_GAF_COMPONENT o
FPM_OIF_COMPONENT)
- Un Component para la Heder Área (FPM_IDR_COMPONENT)
En términos simples, la configuración de una aplicación FPM es la configuración de estos dos
Component.
Vamos a ver con detalle cada paso de la creación de la aplicación FPM:
1. Crear un Web Dynpro Component con las UIBBs requeridas e implementar la interfaz
IF_FPM_UI_BUILDING_BLOCK de la Web Dynpro:
- Ir a la transacción se80 y en el desplegable escoger Web Dynpro Component, poner el
nombre de nuestra nueva Web Dynpro y pulsar en crear:
- En la siguiente ventana de diálogo que se muestra, introducir un nombre, descripción y
nombre de ventana y vista (el nombre de la vista debe ser diferente al de la ventana) y
pulsar ENTER.
- Guardamos y asignamos el paquete adecuado.
- Elegimos la pestaña "Impemented interfaces”. En la primera fila de la columna
“Name”, introducimos la interfaz FPM:
IF_FPM_UI_BUILDING_BLOCK y guardamos.
- En la columna “Action”, pulsar “Reimplement”. El icono de la columna
“Implementation State” se muestra verde. Activar todo lo asociado con la Web Dynpro
con el botón .
Cuando se crea un Component, la Web Dynpro crea automáticamente una Window y una View
y asigna la View automáticamente a dicha Window (puede añadir más ventanas y vistas
manualmente. Se recomienda agregar solamente una vista por ventana). En los siguientes
pasos, crearemos una Window nueva, una View nueva y asignaremos la View a la Window.
- En el navegador de objetos, desplegar el árbol del Web Dynpro Component;
- Expanda el nodo “Views” y haga doble clic en la vista existente.
- En la pestaña “Layout”, haga clic derecho sobre ROOTUIELEMENTCONTAINER en
insert element y “CAPTION” :
- Pulsar Enter y pinchar una sola vez en el campo “text” del bloque “Property” para
escribir el texto “Hello”.
- Guardar y activar todo lo relacionado con la Web Dynpro que aparezca en la ventana
de activación.
- Añadimos una segunda View haciendo click derecho sobre el nodo “Views” y luego en
“Create” / “Crear”. Asignamos nombre y descripción y Enter:
- Añadimos otro “Caption” como ya se hizo para la otra pestaña, y asignamos el texto
“Welcome to the world of FPM”. Guardamos.
- Hacemos click derecho sobre el nodo “Windows”, informamos el nombre y descripción
de la Window y pulsamos enter:
- Arrastramos la View creada anteriormente “FIRST” desde el árbol del navegador hasta
el nodo que se muestra a la derecha con la estructura de la nueva Window:
(Finalmente se ve que la View se ha añadido en el árbol de la ventana)
- Guardamos y activamos.
2. Crear una Web Dynpro Aplication y especificar los parámetros de acuerdo con cada
instancia de floorplan que estemos utilizando. Los pasos a seguir son los siguientes:
- Hacer click derecho en el nodo del Web Dynpro Component del árbol de navegación
de la izquierda. Pulsar “Create” / “Crear” luego Web Dynpro Aplication e informar un
nombre y descripción.
Pulsar Enter.
- Introduzca la siguiente información para crear una aplicación OIF o GAF:
Component: FPM_OIF_COMPONENT
/ (según OIF o GAF)
FPM_GAF_COMPONENT
Interface View: FPM_WINDOW
Plug Name: Default
- Guardar y activar.
Ya hemos creado la aplicación. Ahora podemos añadir parámetros a la aplicación de la
siguiente forma:
- La Application se ha creado en el Component FPM_OIF_COMPONENT, así lo
introducimos en la se80 (Web Dynpro Component / Interface) y pulsamos Enter:
- Hacer doble click en el nodo de la Application creada y pulsar en la pestaña
“Parameters” que se muestra a la derecha:
- Podemos elegir los que queramos. En tiempo de ejecución, estos parámetros están
expuestos vía IF_FPM->MO_APP_PARAMETER. (MO_APP_PARAMETER almacena una
instancia de IF_FPM_PARAMETER). Hay otros parámetros específicos de FPM que se
pueden agregar a su aplicación. Estos se detallan en la siguiente tabla:
3. Usar el editor de configuración de FPM para crear una configuración para la aplicación.
Previamente se ha de haber creado una Web Dynpro con 2 View y una Application
implementando la interfaz FPM_OIF_COMPONENT o FPM_GAF_COMPONENT. A continuación
los pasos a seguir son los siguientes:
- En el navegador de objetos, haga clic en su nueva aplicación Web Dynpro y seleccione
Crear / Cambiar configuración. El editor de configuración FPM se abre en una ventana
del navegador de internet:
- Introducir un nombre para el campo Configuration ID para el nombre de la
configuración. Pulsar “Create” / “Crear” y OK.
- La ventana de la configuración muestra 2 componentes;
FPM_OIF_COMPONENT (ó FPM_GAF_COMPONENT)
FPM_IDR_COMPONENT
para los que se pueden crear configuraciones independientes. Para ello, en la columna
“configuration” / “configuración” introducir los nombres de esas configuraciones y
guardar.
- Seleccionar la fila que contiene FPM_OIF_COMPONENT (or FPM_GAF_COMPONENT) y
“Go To Component Configuration” / “Pasar a Configuración del componente” ->
“Crear” / “Create” y OK.
- Se mostrará una ventana de configuración con los siguientes elementos:
Jerarquía de Navegación: Con los elementos de la Application que podemos
configurar
Previsualización: Muestra el elemento seleccionado en la jerarquía y permite
cambiar los atributos del elemento.
Área de Acción: Permite añadir varios elementos a las pantallas individuales (por
ejemplo, botones de herramientas, Views principales o UIBB)
Se debe completar la configuración con los pasos siguientes:
Configuring the FPM_GAF_COMPONENT (ó OIF)
1. La previsualización de la configuración del Component tiene un paso principal que
contiene un UIBB. También hay 2 botones, “Previous” / “Anterior” y “Next” /
“Siguiente”.
2. Para añadir un Segundo paso, seleccionar “Add Main Step” / “Añadir paso principal”
3. En el árbol / jerarquía expandir los nodos de los pasos principales. Hay 2 UIBB, una
para cada paso. Seleccionamos la 1ª para previsualizar sus atributos.
4. Ajustar estos atributos a la 1º window de nuestro Web Dynpro Component (que
contiene el texto ‘Hello’) de la siguiente forma:
Introduce el nombre del Component (usar la ayuda de búsqueda para
encontrar el Component).
Introducir la View (usar la ayuda de búsqueda).
5. En el árbol, seleccionar el otro elemento UIBB y realizar los mismos pasos pero con
la otra Window.
6. Grabar.
Configuring the FPM_IDR_COMPONENT
1. En el area de acción de la ventana de configuración, seleccionar “Configure IDR” /
“Configurar IDR”.
2. Crear y guardar.
3. En el árbol elegir “IDR Basic” / “IDR Básico”. Se muestran los atributos de “IDR
Básico”. Introducir los siguientes datos:
Título de Application
Tooltip (opcional)
4. Guardar.
4. Probar la aplicación:
- En el árbol de la se80 localizar la Application FPM dentro del nodo de las Applications
de la Web Dynpro.
- Haz click derecho en la Application y selecciona “Test”. La Application se abrirá.
Herramienta de creación de Applications (ACT)
Es una herramienta de Web Dynpro que proporciona FPM para crear aplications y sus
correspondientes configuraciones en las 3 floorpalns disponibles (OIF/GAF/OVP) reduciendo
el esfuerzo.
Esta herramienta está localizada en el paquete APB_FPM_CONF y se llama
FPM_CFG_APPL_CREATION_TOOL. Para acceder a ella, introducimos en la se80 el nombre del
paquete y en el árbol de dicho paquete, navegamos por: “Web Dynpro“-> “Web Dynpro
Applications” y seleccionamos FPM_CFG_BO_MODEL_ACT WD. Hacemos click derecho en ella
y pulsamos en “Test”. Para utilizar esta herramienta, seguiremos estos pasos:
- Introducimos los datos de la aplicación que queremos crear:
Nombre de la Application
Descripción (opcional)
Floorplan
- Seleccionar “Propose” / “Proponer”. Basadio en el foorplan seleccionado, FPM
propone los nombres para los siguientes componentes de la tabla “Proposed
Configuration Names”:
Application Configuration
Floorplan (Component) Configuration
Header (IDR) Configuration
(Estos nombres y las descripciones de las configuraciones pueden ser cambiados
manualmente)
- Seleccionar “Create” e introducir los datos del paquete correcto.
- Después de crear la configuración de la Application FPM, tenemos las siguientes
opciones:
Seleccionar “Test” / “Probar”
Seleccionar “Configuration Editor” / “Editor de configuración”
Seleccionar “New” / “Nuevo”
Editor de Configuración para el administrador de Floorplan Editor de Configuración para el administrador de Floorplan se usa para mejorar las interfaces
de usuario de las applications y adaptarlas a las necesidades de negocio.
El editor de configuración tiene las siguientes áreas:
- Zona de navegación; muestra todas las configuraciones de applications o components
a los que se ha accedido anteriormente y que están ordenadas jerárquicamente.
- Ruta de navegación; (parte de arriba de la zona de navegación) está dividida en las
siguientes “subregiones”:
Área de control; para elegir las ventanas que quieres configurar de la
Web Dynpro. Aquí se puede modificar o visualizar los botones para
configurar los ajustes globales y parámetros de las variantes de la
Application.
Jerarquía; muestra un “árbol” con los elementos que se pueden
configurar”
- Previsualización; muestra la interfaz de la Application. Los elementos seleccionados,
están coloreados en el árbol de jerarquía y sus atributos se ven en la vista de
atributos.
- Área de acción; contiene enlaces a todas las acciones que se pueden ejecutar para la
interfaz de la Application seleccionada.
- Vista de atributos; desde aquí se pueden modificarlo atributos de la interfaz de la
Application seleccionada
- Área de mensajes; aquí se muestran los conflictos en la configuración como tablas con
el mismo nombre, etc.
Cada elemento de la interfaz de usuario se define y configura mediante sus atributos. Los
perfiles de autorización determinan si se puede llevar a cabo una configuración o mejora de
elementos de la interfaz de usuario. Los 2 siguientes perfiles de autorización son importantes:
- S_DEVELOP; pueden realizarse todos los cambios a una interfaz desarrollada con
WebDynpro Abap.
- S_WDR_P13N; permite configurar una Web Dynpro Application en modo
administrador.
Podemos iniciar el editor de configuración del administrador de Foorplan de alguna de las
siguientes maneras:
- En tiempo de ejecución en modo de administrador, desde la interfaz de usuario de la
Application utilizando el enlace “Adapt Configuration”.
- En tiempo de ejecución en modo experto, desde la interfaz de usuario de la
Application utilizando el enlace ”Change Configuration”.
- En desarrollo, en “Web Dynpro Application Configuration” en el navegador de
objetos del Workbench de ABAP.
- En desarrollo, en “Web Dynpro Component Configuration” en el navegador de
objetos del Workbench de ABAP.
Editor de formularios para el administrador de
Floorplan
El editor de formularios se utiliza para ajustar un formulario en una Application para
necesidades específicas de negocio. El editor de formularios consta de las siguientes áreas de
trabajo:
- Previsualización; se muestran todos los elementos de formulario con el fin de darle
una imagen del layout del formulario.
- Jerarquía; todos los elementos son mostrados en un “árbol”
- Vista de atributos; aquí se pueden cambiar los atributos del elemento del formulario
seleccionado.
- Área de acción; tiene los enlaces a todas las acciones que podemos realizar para el
elemento seleccionado actualmente.
El editor de formularios proporciona las siguientes acciones:
- Añadir grupo (Add Group)
- Añadir fusión de grupo (Add Melting Group)
- Editar clase alimentadora (Edit Feeder Class)
- Editar parámetros (Edit Parameters)
- Configurar barra de herramientas (Configure Toolbar)
- Configurar grupo (Configure Group)
También proporciona las siguientes acciones para la edición de grupos:
- Modificar atributos de grupo (Change Group Attributes)
- Añadir nuevo grupo (Add New Group)
- Añadir fusión de grupo (Add Melting Group)
- Añadir elemento (Add Element)
- Borrar grupo (Delete Group)
Las siguientes acciones para editar una fusión de grupo (melting group):
- Añadir elemento de grupo (Add Group Element)
- Modificar atributos del elemento de grupo (Change Group Element Attributes)
- Borrar elemento de grupo (Delete Group Element)
Y las siguientes acciones para editar la barra de herramientas:
- Añadir botón (Add Button)
- Modificar botón (Change Button)
- Borrar botón (Delete Button)
Hay que asegurarse de que la View “procesamiento de componente-definido” está
seleccionada antes de configurar un componente de formulario. El editor de formularios se
inicia desde el editor de configuración foorplan de forma automática al iniciar la configuración
de una (UIBB) que utilice el componente de Web Dynpro FPM_FORM_UIBB.
Editor de listas para el administrador de Floorplan
Sirve para ajustar una lista dentro de una Application. Consta de las siguientes áreas:
- Previsualización; se muestran todos los elementos de formulario con el fin de darle
una imagen del layout de la lista.
- Jerarquía; todos los elementos son mostrados en un “árbol”
- Vista de atributos; aquí se pueden cambiar los atributos del elemento de la lista
seleccionada.
- Área de acción; tiene los enlaces a todas las acciones que podemos realizar para el
elemento seleccionado actualmente.
El editor de listas proporciona las siguientes acciones:
- Editar clase alimentadora (Edit Feeder Class)
- Editar parámetros (Edit Parameters)
- Configurar columna (Configure Column)
- Configurar barra de herramientas (Configure Toolbar)
También proporciona las siguientes acciones para la edición de columnas:
- Añadir columna (Add Column)
- Borrar columna (Delete Column)
Hay que asegurarse de que la View “procesamiento de componente-definido” está
seleccionada antes de configurar un componente de formulario. El editor de formularios se
inicia desde el editor de configuración foorplan de forma automática al iniciar la configuración
de una (UIBB) que utilice el componente de Web Dynpro FPM_FORM_UIBB.
Editor de componente de búsqueda para el administrador de Floorplan
Sirve para ajustar un componente de búsqueda (en adelante “Search”) dentro de una
Application. Consta de las siguientes áreas:
- Previsualización; se muestran todos los elementos de formulario con el fin de darle
una imagen del layout de la Search.
- Jerarquía; todos los elementos son mostrados en un “árbol”
- Vista de atributos; aquí se pueden cambiar los atributos del elemento de la Search
seleccionada.
- Área de acción; tiene los enlaces a todas las acciones que podemos realizar para el
elemento seleccionado actualmente.
El editor de Search proporciona las siguientes acciones:
- Editar clase alimentadora (Edit Feeder Class)
- Editar parámetros (Edit Parameters)
- Editar atributos de búsqueda (Edit Search Attributes)
- Editar resultados del catálogo de campos de la lista (Edit Result List Field Catalog)
En la vista de atributos, seleccionada desde el árbol de jerarquía, se puede cambiar mediante
los atributos Number of Result Rows y Number of Search Lines el número de filas o columnas
de los resultados de búsqueda. El editor de Search proporciona las siguientes acciones para la
edición de atributos:
- Editar atributo de búsqueda (Edit Search Attribute)
- Borrar atributo de búsqueda (Delete Search Attribute)
También proporciona las siguientes funciones para editar el atributo de una lista de resultados:
- Editar atributos de resultados de búsqueda (Edit Search Result Attribute)
Hay que asegurarse de que la View “procesamiento de componente-definido” está
seleccionada antes de configurar un componente de formulario. El editor de formularios se
inicia desde el editor de configuración foorplan de forma automática al iniciar la configuración
de una (UIBB) que utilice el componente de Web Dynpro FPM_FORM_UIBB.
Editor de Tabbed Component para el administrador de
Foorplan
Sirve para ajustar un tabbed Component (se explica más adelante) dentro de una Application.
Consta de las siguientes áreas:
- Previsualización; se muestran todos los elementos de formulario con el fin de darle
una imagen del layout del tabbed Component
- Jerarquía; todos los elementos son mostrados en un “árbol”
- Vista de atributos; aquí se pueden cambiar los atributos del elemento del tabbed
Component seleccionada.
- Área de acción; tiene los enlaces a todas las acciones que podemos realizar para el
elemento seleccionado actualmente.
El editor de tabbed Component proporciona las siguientes acciones:
- Añadir componente maestro (Nombre técnico MASTER UIBB) (Add Master Component
(technical name: MASTER UIBB))
- Añadir pestaña (Nombre técnico TAB) (Add Tab (technical name: TAB))
Añadir View específica de Application a la pestaña (nombre técnico: TAB UIBB) (Application-
Specific View to Tab (technical name: TAB UIBB))
Hay que asegurarse de que la View “procesamiento de componente-definido” está
seleccionada antes de configurar un componente de formulario. El editor de formularios se
inicia desde el editor de configuración foorplan de forma automática al iniciar la configuración
de una (UIBB) que utilice el componente de Web Dynpro FPM_FORM_UIBB.
Modelo Wire
Se utiliza para crear una Application FPM en ejecución sólo por configuración o con el mínimo
esfuerzo de codificación. Las interdependencias en tiempo de ejecución entre UIBBs están
definidas por las entidades de configuración llamadas "Wires" que se basan en clases
reutilizables "connector". Un wire controla el contenido de datos del UIBB de destino
dependiendo de la interacción del usuario cambiando el puerto de salida de la UIBB fuente.
Los puertos de salida pueden ser del tipo “Lead selection”, “Selection” or “Collection”. Por
ejemplo, el cambio de la selección principal en una lista de pedidos de ventas puede cambiar el
contenido de los datos de otra lista que muestra las posiciones de pedido de ventas asociadas.
Con el fin de ser parte un modelo “Wire”, una UIBB necesita implementar una determinada
interfaz WebDynpro que a su vez proporciona una implementación del modelo alimentador.
Los Wires se definen a nivel de la configuración del floorplan. Para cada modelo UIBB
contenido en la configuración del floorplan, se puede definir una fuente UIBB con un puerto de
salida especificado.
Si el floorplan contiene tabbed components, los modelos UIBB contenidos en ellos, pueden
también ser conectados. De cara a una mejor reutilización, es posible definir intrinsicamente
los tabbed Component como conectados. Un tabbed Component puede definir una UIBB como
“wire plug” (normalmente un MASTER UIBB) que sirve como punto de entrada para la
conexión del tabbed Component desde el Component envolvente del floorplan. Si un wire plug
está configurado para un UIBB de un tabbed Component, solamente el Wire Plug puede ser
conectado exteriormente.
Interfaz IF_FPM_UIBB_MODEL
Interfaz Web Dynpro que necesita ser implementada por un UIBB de estilo libre que debe ser
fuente o destino de Wires. Sólo se necesita implementar el método GET_MODEL_API que
devuelve una referencia ligada a la interfaz modelo alimentador ABAP Orientado a Objetos.
Interfaz IF_FPM_FEEDER_MODEL
Interfaz del modelo alimentador que contiene los métodos llamados por el framework de FPM
siguientes:
- GET_NAMESPACE Devuelve el espacio de nombres del área de aplicación
subyacente.
- SET_CONNECTOR Entrega el conector al que se puede acceder para la
recuperación de datos en el PBO (por ejemplo IF_FPM_CONNECTOR_RUN).
- GET_INPORT_KEY Devuelve una referencia a una clave de objeto que caracteriza
el tipo de metadatos esperados en el import.
- GET_OUTPORTS Proporciona una tabla de puertos de salida que contiene la
clave de objeto, el puerto, el tipo, identificador y un texto descriptivo.
- GET_OUTPORT_DATA Devuelve la referencia de objeto con el actual identificador de
un determinado puerto.
La interfaz del conector IF_FPM_CONNECTOR comprende una interfaz
IF_FPM_CONNECTOR_DEF que define el acceso al framework de FPM y una interfaz
IF_FPM_CONNECTOR_RUN para el acceso en tiempo de ejecución al modelo de la aplicación
alimentadora. La interfaz de definición posee un atributo estático, SV_NAMESPACE, que debe
ser informado con el espacio de nombres en el constructor de la clase de la implementación de
un conector. Los métodos de cada una se explican a continuación:
Métodos de IF_FPM_CONNECTOR_DEF (acceso a framework):
- GET_PARAMETER_LIST; para definir una lista de parámetros (con un nombre, su tipo
de datos y un texto descriptivo).
- GET_PARAMETER_VALUE_SET; ajustar la implementación de un conector a cada
parámetro con el valor proporcionado. Para un Wire entre UIBBs especificadas, el
método proporciona una lista de todas las asociaciones entre el origen y el destino.
- INITIALIZE; el conector es inicializado con los valores de los parámetros.
- SET_INPUT; Recibe una referencia de objeto que lleva los datos actuales del puerto de
salida conectado.
Métodos de IF_FPM_CONNECTOR_DEF (acceso al modelo):
- GET_OUTPUT; devuelve una referencia del objeto que lleva los datos reales que se
mostrarán por un UIBB.
- CREATE_ENTITY; crea y devuelve una entidad de datos de un tipo arbitrario.
- IS_CREATE_ALLOWED; devuelve un indicador booleano si la creación de la entidad
está permitida.
La interfaz de la transacción proporciona métodos para el manejo de eventos globales y
transaccionales. En el editor de configuración de FPM, una implementación del
manejador de transacción puede ser asignada a nivel del modelo Wire. Esta interfaz
tiene los siguientes métodos:
Métodos de la interfaz del manejador de transacción:
- START; recibe datos básicos como parámetros de la aplicación y mensajes del
manejador de FPM.
- AFTER_FLUSH; este método se llama después FLUSH haya sido llamado para todos
UIBBs actuales. Se puede utilizar para vaciar los búferes.
- AFTER_PROCESS_EVENT; se puede usar para manejar eventos transaccionales como
por ejemplo SAVE o CHECK. Por otra parte se puede usar para recoger mensajes que
no están manejados dentro de las UIBBs y reenviarlos al manejador de mensajes de
FPM.
- AFTER_PROCESS_BEFORE_OUTPUT; a este método se le llamada después del PBO
para todas las UIBBs actuales. Se puede utilizar para recoger mensajes en el momento
más tarde posible antes de la salida por pantalla.
- AFTER_ NEEDS_CONFIRMATION; a este método se le llama después de llamar al
NEEDS_CONFIRMATION para todas las UIBBs. Se puede usar para analizar y confirmar
peticiones.
- IS_DIRTY; este método se puede utilizar para indicar un estado sucio en el modo de
protección del trabajo.
FPM en BOL (Capa de objetos de negocio)
Para la capa de objetos de negocio (Business Object Layer / BOL) de CRM, hay una
implementación completa de las clases alimentadoras para los formularios, listas y searchs
GUIBB y clases conectoras para conexiones triviales y relaciones BOL así como entradas de
aplicación via parámetros URL con ejecución de query implicita. Esto también es una clase
manejadora de transacciones BOL y clases base de asistencia para UIBBs de estilo libre.
(Pueden encontrarse aplicaciones de ejemplo en el paquete APB_FPM_BOL_TEST)
Crear una GUIBB en BOL
1. Abrir el editor de configuración para el Component del GUIBB (FPM_FORM_UIBB,
FPM_LIST_UIBB o FPM_SEARCH_UIBB).
2. Elegir la clase alimentadora; CL_GUIBB_BOL_FORM para un formulario,
CL_GUIBB_BOL_QUERY para un formulario de query, CL_GUIBB_BOL_LIST para una
lista o CL_GUIBB_BOL_DQUERY para una search GUIBB.
3. Actualizar los parámetros de alimentación. Tiene que especificar el componente BOL y
el objeto BOL que especifica el nombre del objeto, la query o query dinámica.
4. Después de confirmar los parámetros, ya se recupera la configuración predeterminada
de los alimentadores. Podemos ajustarlos según las necesidades.
También podemos crear nuestras propias clases alimentadoras heredando de las anteriores
clases alimentadoras BOL. De esta forma, podemos ajustar sus comportamientos de acuerdo a
nuestras necesidades con el mínimo esfuerzo de codificación.
Crear una Application FPM en BOL
Una vez creadas UIBBs en BOL, podremos crear la Application de la siguiente forma:
1. Crear una configuración para el floorplan Component (FPM_OIF_COMPONENT,
FPM_GAF_COMPONENT or FPM_OVP_COMPONENT).
2. Montar las UIBBs en BOL de acuerdo a nuestras necesidades.
3. Navegar por el nodo “Wire Model” de la jerarquía.
4. Elegir “BOL Transaction Handler (CL_FPM_BOL_TRANSACTION)” como manejador de
transacciones.
5. Usar el botón “Add wire” en la zona de acciñin para crear nuevos Wires o navigar por
el nodo “Wire” de la jerarquía para actualizar los existentes wires.
6. Actualizar la clave de instancia de la UIBB (destino) que recibirá los datos desde otra
UIBB.
7. Actualizar la clave de instancia de UIBB para la UIBB fuente.
8. Actualizar el Puerto de salida del UIBB fuente.
9. Actualizar la clase conectora.
10. Actualizar los parámetros conectores si el conector define parámetros. Si hay un único
valor, se rellena automáticamente.
11. Repetir los pasos 5 a 10 para todas las dependencias de nuestra interfaz de usuario.
12. Guardar e ir a configuración.
13. Crear o reutilizar una Application Web Dynpro y crear una configuración de Application
referenciada a nuestra nueva configuración de Component de foorplan.
Tiempo de diseño con el editor de configuración de
FPM
Dentro del editor de configuración de FPM, las ventanas de configuración de Component (para
los components OIF, GAF, OVP e IDR) nos ayudan a diseñar el layout de nuestra aplication.
Dentro de las ventanas de configuración de componentes, se pueden realizar las siguientes
tareas:
1. Añadir pasos extra o Views, incluyendo subpasos y subviews
2. Configurar la barra de herramientas con botones predefinidos y menús de navegación
y adjuntar eventos a estos elementos.
3. Adjuntar nuestros UIBBs a los pasos relevantes o Views (o los GUIBBs predefinidos de
FPM). (GUIBBs son bloques de construcción de interfaces de usuario genéricos)
4. Definir el layout del paso o View; dentro del ámbito de las acciones se puede elegir el
botón Añadir UIBB. Tiene las opciones para la adición de un formulario (FORM UIBB),
una lista (LIST UIBB), un componente de pestañas (tabbed UIBB), y una búsqueda
(SEARCH UIBB). Si selecciona una de esas entradas se rellenan previamente los campos
“Component” y “Window”. Sólo es necesario añadir el ID de configuración.
5. Configurar la ayuda rápida.
6. Configurar una pantalla inicial, una pantalla de confirmación y variantes extra para
nuestra Application.
7. Modificar los ajustes globales y establecer parámetros de variantes.
8. Activar la previsualización de UIBBs; por encima del área de previsualización, se ha
añadido un nuevo botón “Show UIBB Preview”. Si el botón está activo tiene la
posibilidad de ver la aplication cómo se ve en tiempo de ejecución
Mediante la asignación de la interfaz de la View como una UIBB estamos componiendo cómo
se verá el área de contenido de la aplicación cuando se ejecute dentro de FPM.
Instancias de Floorplan en el editor de configuración FPM
Lo que se ve en el árbol de jerarquía del editor de configuración de FPM depende del tipo de
instancia Foorplan que estemos utilizando en la Application.
Instancia OIF
En una Application OIF, FPM muestra nuestros UIBBs en múltiples pestañas dentro del área de
contenidos. En el árbol se muestran los siguientes tipos de views:
- View principal: Representa una sola pestaña dentro del area de contenido de la
Application. Los atributos nos permiten nombrar e identificar las pestañas individuales.
Cada View principal contiene una o más sub-views.
- Sub-View: Una Application FPM debe tener al menos una UIBB por cada sub-View. El
editor de configuración de FPM automáticamente lo proporciona, pero se pueden
añadir UIBBs predefinidas desde nuestra Application. Para ello:
1. En el árbol, seleccionar la subview en la queramos añadir la UIBB y elegir
“Añadir UIBB / Add UIBB”.
2. En la vista de atributos introducir:
Component (Webdynpro component que implementa la interfaz
IF_FPM_UI_BUILDING_BLOCK)
View (El nombre de la Window anterior al Web Dynpro Component que
contiene la UIBB)
Instancia GAF
En una Application de GAF, FPM muestra sus UIBBs como pasos individuales en el Roadmap
general y el árbol de jerarquía muestra los siguientes tipos de pasos:
- Paso principal; una apliccation GAF debe tener al menos una UIBB por paso. El editor
de configuración de FPM automáticamente lo proporciona, pero se pueden añadir
UIBBs predefinidas desde nuestra Application.
- Sub-paso; es un paso existente entre 2 pasos principales. Igual que en los pasos
principales, cada sub-paso debe tener al menos una UIBB. Se pueden añadir UIBBs de
la misma manera que se añaden para las sub-views. Los sub-pasos no son visibles al
comienzo, pero todos los pasos principales que son un posible punto de partida para
sub-pasos se indican como tales en el elemento Roadmap en tiempo de ejecución. Los
sub-pasos son declarados estáticamente pero se activan en tiempo de ejecución para
la Application (a través de la FPM API).
Instancia OVP (Ver Overview Page Floorplan)
Añadir y activar Sub-pasos para Applications GAF
La configuración de sub-pasos es similar a la de los pasos principales. Para añadir sub-pasos
hay que realizar lo siguiente:
1. En “Editor de configuración FPM / FPM Configuration Editor”, abrir la ventana
“Component Configuration”.
2. En la jerarquía seleccionar el paso principal en el que quieres añadir el sub-paso. Elegir
“Añadir sub-paso / Add sub-step.
3. En la vista de atributos introducior los datos de Component ID y nombre en “SUBSTEP”
y de Component y windowde la Web Dynpro en “SUBSTEP_UIBB”.
Barra de herramientas de FPM
FPM nos permite crear barras de herramientas de acuerdo con las guías de interfaz de usuario
de SAP, pudiendo configurar los siguientes elementos:
- Botones estándar de función: (Guardar, editar…).
- Botones específicos de la Application: con los que poder añadir nuestro propio código.
- Botones de elección: Ofrecen al usuario un menú desplegable con una lista de posibles
opciones. Se pueden elegir los valores y adjuntarles eventos. Para ello hay que
introducir el nombre de la etiqueta de la opción y el ID del evento.
- Menús de navegación.
- El botón “Close/Cerrar” aparece automáticamente pero se puede ocultar con el
parámetro del atributo FPM_HIDE_CLOSE(=X)
-
Diferencias entre una barra de herramientas OIF y una GAF:
- Barra de herramientas de Application OIF
Hay una sola barra de herramientas en cada variante OIF, y contiene más
botones estándar que la GAF. Tiene 2 opciones más para crear botones
específicos de la Application. FPM automáticamente añade el botón
“Guardar / Save” cuando se crea la configuración del Component.
- Barra de herramientas de Application GAF
Cada paso y sub-paso de una variante, tiene una barra de herramientas propia
y no existe una barra de herramientas principal. FPM automáticamente añade
los botones “Anterior / Previous” y “Siguiente / Next” cuando se crea la
configuración del Component.
Añadir elementos a una Barra de herramientas
1. En el editor de configuración de FPM localizar el Component OIF o GAF y elegir
Modificar
2. Elegir “Añadir elemento a la barra de herramientas / Add Toolbar Element”
3. Seleccionar un tipo de botón botón y pulsar OK. Aparecerá el nuevo botón en el árbol
y los atributos editables en la previsualización.
Ajustar la barra de herramientas dinámicamente
En tiempo de ejecución podemos cambiar la barra de herramientas mediante APIS. (Ver
Context Navigation Region (CNR) APIs en este mismo documento).
Botones de la barra de herramientas
- Activation Function / Función de activación
- Alternate Function / Función alternativa
- Other Function / Otra función
- You can Also/ Related Links (navigation links)
- Close / Cerrar
- Salir al paso principal (Sólo GAF) / Exit to Main Step (GAF only)
- Finish /finalizar
- Siguiente paso / Acción final (Sólo GAF) /Next Step/Final Action (GAF only)
Atributos de los elementos de la barra de herramientas
- Element ID / ID del elemento.
- Duplicate Toolbar / Duplicar barra de herramientas (en la parte de debajo de la
pantalla).
- Sequence Index / Índice de sequencia (para ordenar los botones).
- Repeat Sel. Action (Repeat Select Action) / Repetir acción de selección (para coger la
misma opción en el siguiente botón desplegable).
- Enabled / Habilitar (El botón deshabilitado aparece en gris).
- Visibility / Visibilidad (Botón visible en la barra de herramientas).
Eventos de botones de la barra de herramientas
Cada botón estándar de función está unido a un evento FPM (por ejemplo, Editar está
conectado al evento gc_event_edit). La conexión a estos eventos FPM es rígida y no se puede
cambiar. El evento puede, por supuesto, ser cambiado dinámicamente llamando otros
eventos. Algunos eventos de botón están pre-configurados por FPM (por ejemplo, los eventos
Anterior y Siguiente de navegación de los botones y el evento en el botón Guardar) y no
requieren ningún código extra, pero en general, la aplicación debe proporcionar el
procesamiento de eventos. En general, FPM garantiza únicamente que todas las UIBBs
afectadas sean informadas. Por ejemplo, aunque FPM proporciona un botón de impresión, no
hay soporte de impresión en FPM. FPM ofrece este botón sólo para asegurarse de que se hace
de acuerdo con las directrices de interfaz de usuario de SAP. La aplicación debe proporcionar
las funciones de impresión necesarias. La siguiente tabla muestra los botones de la barra de
herramienta (y los botones de listas desplegables) y los eventos provocados por ellos:
Interfaz IF_FPM_CNR_GAF
Proporciona métodos que pueden ser utilizados para cambiar dinámicamente la barra de
herramientas de FPM de una pantalla inicial o principal para GAF. Se accede a ella a través de
CL_FPM_SERVICE_MANAGER, como en el código de ejemplo siguiente:
DATA: lo_cnr_gaf TYPE REF TO if_fpm_cnr_gaf,
lo_fpm TYPE REF TO if_fpm.
lo_fpm = cl_fpm_factory=>get_instance( ).
lo_cnr_gaf ?= lo_fpm->get_service(
cl_fpm_service_manager=>gc_key_cnr_gaf ).
Esta interfaz proporciona los siguientes métodos:
- DEFINE_BUTTON; para poder crear o modificar botones estándar o específicos de la
Application.
- DEFINE_BUTTON_CHOICE; para poder crear o modificar botones estándar o
específicos de la Application de listas desplegables.
- CREATE_SEPARATOR; para crear un separador en tiempo de ejecución en el área de
OTHER_FUNCTIONS.
- SET_DUPLICATE_TOOLBAR; para activar o desactivar la duplicación de la barra de
herramientas.
- DEFINE_YOU_CAN_ALSO; Para definir launchpads para el menú “You Can Also”.
- DEFINE_RELATED_LINKS; Para editar la barra de menus para RELATED_LINKS.
- GET_BUTTONS; para indicar qué botones se mostrarán.
- GET_BUTTON_CHOICES; para indicar qué botones de lista desplegable se mostrarán.
- GET_SEPARATORS; para determinar la posición de los separadores en el área de
“Other Functions”.
- GET_RELATED_LINKS; para determinar los contenidos del menú “Related Links”.
- GET_YOU_CAN_ALSO; para determinar los contenidos del menú “You Can Also”.
Hay parámetros de estos métodos que son específicos sólo para GAF, y que son estos,
dependiendo de la localización del elemento de la barra de herramientas:
Localizados en el paso principal:
VARIANT_ID
MAINSTEP_ID
Localizados en un sub-paso:
VARIANT_ID
MAINSTEP_ID
SUBVARIANT_ID
SUBSTEP_ID
Localizados en la pantalla inicial:
SCREEN
Un ejemplo de métodos llamados en tiempo de ejecución para GAF se muestra en el siguiente
adjunto:
código métodos GAF runtime.txt
Interfaz IF_FPM_CNR_OIF
Proporciona métodos que pueden ser utilizados para cambiar dinámicamente la barra de
herramientas de FPM de una pantalla inicial o principal para OIF. Se accede a ella a través de
CL_FPM_SERVICE_MANAGER, como en el código de ejemplo siguiente:
DATA: lo_cnr_oif TYPE REF TO if_fpm_cnr_oif,
lo_fpm TYPE REF TO if_fpm.
lo_fpm = cl_fpm_factory=>get_instance( ).
lo_cnr_oif ?= lo_fpm->get_service(
cl_fpm_service_manager=>gc_key_cnr_oif).
Esta interfaz proporciona los siguientes métodos (los mismos que para GAF):
- DEFINE_BUTTON; para poder crear o modificar botones estándar o específicos de la
Application.
- DEFINE_BUTTON_CHOICE; para poder crear o modificar botones estándar o
específicos de la Application de listas desplegables.
- CREATE_SEPARATOR; para crear un separador en tiempo de ejecución en el área de
OTHER_FUNCTIONS.
- SET_DUPLICATE_TOOLBAR; para activar o desactivar la duplicación de la barra de
herramientas.
- DEFINE_YOU_CAN_ALSO; Para definir launchpads para el menú “You Can Also”.
- DEFINE_RELATED_LINKS; Para editar la barra de menús para RELATED_LINKS.
- GET_BUTTONS; para indicar qué botones se mostrarán.
- GET_BUTTON_CHOICES; para indicar qué botones de lista desplegable se mostrarán.
- GET_SEPARATORS; para determinar la posición de los separadores en el área de
“Other Functions”.
- GET_RELATED_LINKS; para determinar los contenidos del menú “Related Links”.
- GET_YOU_CAN_ALSO; para determinar los contenidos del menú “You Can Also”.
Dado que existe una barra de herramientas para cada variante de OIF, los métodos para OIF
sólamente necesitan que se pase el parámetro VARIANT_ID.
Un ejemplo de métodos llamados en tiempo de ejecución para OIF se muestra en el siguiente
adjunto:
código métodos OIF runtime.txt
Previsualización completa de FPM
Para activar la función de vista previa para un desarrollo propio de UIBB debemos
implementar la interfaz IF_FPM_CFG_UIBB_PREVIEW. Ésta proporciona el método
UIBB_PREVIEW con el parámetro de entrada IV_INTERFACE_VIEW que es la vista actualmente
visible, y el parámetro de salida EV_PREVIEW_WINDOW. Si elige el botón Mostrar UIBB en
tiempo de ejecución, todas UIBBs implementadas para la interfaz IF_FPM_CFG_UIBB_PREVIEW
se muestran con el layout para la configuración actual.
Región de identiicación de FPM (IDR)
Tiene 3 partes:
Área de cabecera /Header area (IDR Básica)
Área de entradas / Ticket area (IDR Extendida) -> Sólo para OIF
Área de posiciones / Items area
Tanto el área de cabecera como la de las entradas, puede ser configuradas en la fase de
desarrollo en la ventana de Component Configuration. Para realizar ajustes y modificaciones en tiempo de ejecución, existe una serie de métodos encapsulados en la interfaz IF_FPM_IDR, y que son los siguientes:
Métodos para el Área de cabecera:
- GET_APPLICATION_TITLE; recupera el texto del título y su descripción.
- SET_APPLICATION_TITLE; muestra un nuevo texto del título y descripción en el
área de cabecera.
- SET_HEADER_VISIBILITY; hace que el área de cabecera sea visible o invisible.
Métodos para el Área de entradas:
- GET_TICKET; recupera el texto de la parte superior de entradas, fondo billete y
sus descripciones.
- SET_TICKET; muestra los nuevos textos de la parte superior de entradas, fondo
billete y sus descripciones.
- SET_TICKET_VISIBILITY; hace que la zona de entrada visible o invisible.
Métodos para el Área de posiciones:
- ADD_ITEM_GROUP_BY_VAL; añade un nuevo grupo de posiciones en el área
de posiciones. Con este método se pueden añadir posiciones como simples
cadenas de texto, y luego, si necesitan ser cambiados los valores, se llama al
método CHANGE_ITEM_GROUP_BY_VAL.
- CHANGE_ITEM_GROUP_BY_VAL; cambia la etiqueta y los valores de
posiciones añadidas con el método ADD_ITEM_GROUP_BY_VAL.
- ADD_ITEM_GROUP_BY_REF; es similar a ADD_ITEM_GROUP_BY_VAL, pero en
lugar de introducir cadenas de texto se introducen como referencia a un
atributo del nodo de contexto de la Web Dynpro.
- ADD_NAVIGATION_ITEM; añade una pareja de etiqueta / enlace de
navegación al IDR.
- CHANGE_NAVIGATION_ITEM; para editar una pareja de etiqueta / enlace de
navegación añadida con ADD_NAVIGATION_ITEM.
- ADD_IMAGE_ITEM; añade una pareja de etiqueta / icono al IDR.
- CHANGE_IMAGE_ITEM; para editar una pareja de etiqueta / icono añadida
con ADD_IMAGE_ITEM.
- CONTAINS_ITEM_GROUP; verifica si existe un grupo de posiciones
determinado dentro de la IDR.
- REMOVE_ITEM_GROUP; borra un determinado grupo de posiciones.
- INITIALIZE_ITEMS; borra todas las posiciones de la IDR.
- SET_ITEMS_VISIBILITY; edita la visibilidad de toda la zona de posiciones.
Para acceder a la interfaz y poder utilizar los métodos anteriores, debemos incluir el siguiente código:
DATA: lo_idr TYPE REF TO if_fpm_idr,
lo_fpm TYPE REF TO if_fpm.
lo_fpm = cl_fpm_factory=>get_instance( ).
lo_idr ?= lo_fpm->get_service( cl_fpm_service_manager=>gc_key_idr ).
Proporcionar un enlace al editor de configuración de FPM en el
IDR
Para crear un enlace en el área de cabecera de nuestra Application FPM existen 2 opciones:
1. Usar la transacción SU03
- Abrir la transacción SU03 e ir a la pestaña “Parámetros / Parameters”
- Añadir el parámetro FPM_CONFIG_EXPERT con el valor marcado (= X)
2. Abrir la Application FPM con el parámetro URL sap-config-mode = X (poner la coletilla
sap-config-mode = X al final de la dirección URL).
Ayuda rápida
Da una explicación útil de una View secundaria, pantalla inicial, paso principal, o sub-paso. Se
puede introducir el texto de ayuda directamente o dar una referencia a un objeto de
documentación. Podemos visualizarla desde el árbol de jerarquía en el atributo “Text / Texto”
o “Objeto de documentación / Documentation Object” de un elemento “Explanation /
Explicación” del árbol. Para crear una ayuda de búsqueda se deben realizar los siguientes
pasos:
1. Seleccionar la configuración de una Application de Web Dynpro desde el navegador de
objetos del workbench de ABAP.
2. En el explorador de la Web Dynpro ir a “Display Web Dynpro Configuration screen /
Mostrar la pantalla de configuración de Web Dynpro” -> “Web Dynpro Configuration /
elegir configuración Web Dynpro” -> “Test” -> “Execute in Administrator Mode /
Ejecutar en modo Administrador”. La application se ejecutará en otra ventana del
navegador.
3. En esta ventana, ir a región de identificador de la Application y seleccionar el enlace
“Adapt Configuration / Adaptar configuración”.
4. En la pantalla “Editor for Web Dynpro ABAP Components — Customizing / Editor de
componentes de Web Dynpro ABAP— Personalizar” pulsar en “Change / Modificar”.
5. En la pantalla “Personalizar componente <nombre de la aplicación>”, asegurarse de
que la View ”Component-Defined / Componente definido”está “ON.
6. Pulsar “Expandir todo / Expand All”.
7. Seleccionar la sub-View, paso principal, sub-paso, o pantalla inicial y “Añadir
explicación / Add Explanation” en el área de acción del editor de configuración.
8. El Sistema genera automáticamente un texto compuesto por el título del elemento al
que se refiere precedido de “Explanation / Explicación”.
9. En el campo “Texto / Text” de la vista de atributos, modificar el contenido del texto
con lo que queramos.
10. Guardar la configuración.
11. Probar la nueva configuración.
Crear ayuda rápida enlazando a un objeto de documentación
1- Crear un objeto de documentación, realizando los siguientes pasos:
a) Ir a la transacción SE61
b) Elegir “General Text / Texto general” como clase de documento.
c) Introducir el nombre técnico del objeto y pulsar “Crear / Create”.
d) Introducir el texto de la ayuda.
e) Guardar y activar.
2- Seleccionar desde el navegador de objetos del workbench de ABAP la configuración de
la Application Web Dynpro.
3- En el explorador de la Web Dynpro ir a “Display Web Dynpro Configuration screen /
Mostrar la pantalla de configuración de Web Dynpro” -> “Web Dynpro Configuration /
elegir configuración Web Dynpro” -> “Test” -> “Execute in Administrator Mode /
Ejecutar en modo Administrador”. La Application se ejecutará en otra ventana del
navegador.
4- En esta ventana, ir a región de identificador de la Application y seleccionar el enlace
“Adapt Configuration / Adaptar configuración”.
5- En la pantalla “Editor for Web Dynpro ABAP Components — Customizing / Editor de
componentes de Web Dynpro ABAP— Personalizar” pulsar en “Change / Modificar”.
6- En la pantalla “Personalizar componente <nombre de la aplicación>”, asegurarse de
que la View ”Component-Defined / Componente definido”está “ON.
7- Pulsar “Expandir todo / Expand All”.
12. En el campo “Objeto de documentación / Documentation Object”de la vista de
atributos, introducir el nombre técnico (creado en al paso 1) del objeto de
documentación.
13. Guardar la configuración.
14. Probar la nueva configuración.
Variantes
En algunos casos, la configuración final de un cambio de View OIF o una hoja de ruta GAF
puede ser solo decidida en tiempo de ejecución. Por ejemplo, suponga que una pantalla inicial
le pide que seleccione una de tres opciones. La posterior hoja de ruta o cambio de View que
aparece depende de la opción que haya seleccionado en la pantalla inicial. FPM hace esto
posible porque permite configurar variantes. Cada variante es un conjunto completo de datos
de configuración de un cambio de vista OIF o una hoja de ruta GAF. Se utiliza la entrada desde
la pantalla inicial (o de cualquier otra información de partida, como los parámetros de la
Application) para seleccionar una de las variantes.
Configurar la selección de Variante
La selección de variante se controla mediante programación con un controlador de
configuración específica de la Application (APPCC). Para configurar la selección de variante se
realizan los siguientes pasos:
1- Implementar la interfaz IF_FPM_OIF_CONF_EXIT (o IF_FPM_GAF_CONF_EXIT)
2- Para seleccionar la variante, usar el método SET_VARIANT de esta forma:
- Instancia OIF:
method OVERRIDE_EVENT_OIF .
...
case io_oif->mo_event->MV_EVENT_ID.
when if_fpm_constants=>gc_event-leave_initial_screen.
io_oif->set_variant( ).
...
- Instancia GAF:
method OVERRIDE_EVENT_GAF .
...
case io_gaf->mo_event->MV_EVENT_ID.
when if_fpm_constants=>gc_event-leave_initial_screen.
io_gaf->set_variant( ).
3- Declarar el AppCC del FPM realizando los siguientes pasos:
a) En el editor de configuración de FPM abrir la ventana del editor de configuración
de components. En la zona de control, seleccionar “Change / Modificar” ->
“Ajustes globales / Global Settings”.
b) En la ventana de diálogo de “Ajustes globales / Global Settings”, bajo “Parámetros
específicos de aplicación” / Application-Specific Parameters” introducir el
component deWeb Dynpro que estemos usando como controlador de la
configuración específica de Application.
c) Guardar.
Pantalla inicial
Esta pantalla es opcional y está compuesta por una o más UIBBs.
Añadir una pantalla inicial
1. Iniciar el editor de configuración de FPM y abrir la configuración del component OIF o
GAF.
2. En la zona de control, seleccionar “Add / Añadir” -> “Pantalla inicial / Initial Screen”.
3. Seleccionar “Añadir UIBB / Add UIBB” -> “Añadir UIBB / Add UIBB” e introducir el ID
del component y la Window adecuada.
FPM añade el botón de inicio de forma automática a la barra de herramientas de la pantalla
inicial. Éste no es configurable. Cuando lo pulsamos en tiempo de ejecución, lanza el evento
IF_FPM_CONSTANTS=>GC_EVENT-LEAVE_INITIAL_SCREEN, sale de la pantalla principal y
muestra el primer paso de la hoja de ruta (en GAF) o cambia de View (en OIF). A veces
necesitaremos omitir la pantalla inicial. En este caso, lanzaremos el evento
LEAVE_INITIAL_SCREEN con el siguiente código:
data: lo_fpm type ref to if_fpm
lo_fpm = cl_fpm_factory=>get_instance( )
lo_fpm->raise_event_by_id(IF_FPM_CONSTANTS=>GC_EVENTLEAVE_
INITIAL_SCREEN)
.
A veces es útil que no se comience la Application desde la pantalla inicial, por ejemplo cuando
los parámetros de entrada ya están establecidos y no es necesario indicar el objeto con el que
queremos trabajar. Para realizar esto en tiempo de ejecución se lanza el evento de FPM
LEAVE_INITIAL_SCREEN de alguna de estas 2 formas:
En el método OVERRIDE_EVENT_* de nuestro AppCC
En el método ROCESS_BEFORE_OUTPUT de alguna de nuestras pantallas iniciales
UIBBs (Si no usamos AppCC) Como en el código de ejemplo adjunto:
código evento LEAVE_INITIAL_SCREEN.txt
Pantalla de confirmación
FPM no proporciona una Pantalla de confirmación por defecto, pero sí por separado para OIF o
para GAF. Cada variante de la Application puede requerir una pantalla de confirmación
diferente y FPM permite configurarlas.
Pantalla de confirmación en instancias OIF
Aparecen sólo cuando el objeto que está siendo procesado se borra. Después de eliminar un
objeto, aparece esta pantalla en lugar del cambio normal de View.
Pantalla de confirmación en instancias GAF
Muchas Applications GAF usan un paso final de confirmación al final de la hoja de ruta para
informar de que la acción se ha completado correctamente.
Añadir y configurar una pantalla de confirmación
1. Iniciar el editor de configuración FPM del component de nuestra application y abrir la
pantalla de configuración del component.
2. En la zona e control, Seleccionar “Añadir / Add” -> “Pantalla de confirmación /
Confirmation Screen”. Podemos seleccionar los radiobuttons de la jerarquía para
movernos entre “Pantalla de confirmación / Confirmation Screen” y otras pantallas
de nuestra application.
Para mostrar la pantalla de confirmación en Applications OIF en tiempo de ejecución, sólo
tenemos que pulsar el botón estándar “Delete / Borrar” y se lanza el evento
IF_FPM_CONSTANTS=>GC_EVENT-DELETE_CURRENT_OBJECT. También se puede realizar por
código como en este ejemplo:
data: lo_fpm type ref to if_fpm
lo_fpm = cl_fpm_factory=>get_instance( )
lo_fpm->raise_event_by_id(IF_FPM_CONSTANTS=>GC_EVENTDELETE_
CURRENT_OBJECT)
Bucle de eventos de FPM
Si necesitamos que una interacción del usuario afecte no sólo a un componente local,
sino también a otros componentes de la Application, la acción de la Web Dynpro debe
ser transferida a un evento FPM. Este evento a continuación, pasa a través de un modelo
de fase FPM (bucle de eventos) que se integra en el modelo de fase de Web Dynpro.
Dentro del bucle de eventos FPM todos los componentes involucrados pueden participar
en el procesamiento del evento.
Lanzar eventos estándar En una Application FPM muchos eventos se desencadenan con las acciones “siguiente / next” y
“anterior / previous” (en GAF) o cuandop cambiamos de una View a otra (OIF). Para estas
interacciones, FPM automáticamente inicia el bucle de eventos. Además, estos eventos
estándar son manejados de forma genérica por FPM.
Pero hay veces que los eventos estándar sean desencadenados desde una UIBB de una
Application específica por ejemplo saltar la pantalla inicial si los parámetros de inicio se pasan
como parámetros URL.
Cada evento FPM se representa en tiempo de ejecución por una instancia de la clase
CL_FPM_EVENT. Esta clase encapsula la información necesaria para ejecutar el evento.
Desencadenar el bucle de eventos de FPM
1. Crear una instancia de CL_FPM_EVENT con los atributos apropiados. Para todos los IDs
de eventos estándar hay constantes disponibles en la interfaz IF_FPM_CONSTANTS.
2. Lanzar el evento llamando al método IF_FPM~RAISE_EVENT y pasar la instancia de
CL_FPM_EVENT.
Cuando un evento sólo necesita el parámetro ID del evento, FPM ofrece un evento adicional
RAISE_EVENT_BY_ID que hace que el paso 1 descrito justo antes no sea necesario. En ese caso,
el evento se lanza así:
data lo_fpm type ref to if_fpm
lo_fpm = cl_fpm_factory=>get_instance( )
lo_fpm->raise_event_by_id( IF_FPM_CONSTANTS=>GC_EVENTLEAVE_
INITIAL_SCREEN )
Desencadenar eventos específicos de la Application
Se siguen las mismas reglas que para desencadenar el bucle de eventos, con la única diferencia
de que como FPM no conoce la semántica del evento, no lleva a cabo acciones específicas para
este evento. Sin embargo, el procesamiento del evento es idéntico. El siguiente código
muestra un ejemplo de cómo desencadenar un evento específico de la Application (incluyendo
parámetros de evento):
data: lo_fpm type ref to if_fpm,
lo_event type ref to cl_fpm_event.
create object lo_event
exporting
iv_event_id = 'DELETE_AIRPORT'.
lo_event->mo_event_data->set_value(
iv_key = 'AIRPORT_ID'
iv_value = lv_airport_id).
lo_fpm = cl_fpm_factory=>get_instance( ).
lo_fpm->raise_event( io_event = lo_event ).
Reaccionar a Eventos del Framework
El bucle de eventos FPM está integrado en el modelo de fase Web Dynpro, como muestra la
siguiente figura:
Principales métodos Web Dynpro
Los siguientes métodos de Web Dynpro son importantes para Applications FPM:
- DOINIT; Llamado una sola vez en tiempo de ejecución y que sirve para inicializar.
- DOBEFOREACTION; Llamado por todas las UIBB cuando el usuario activa una ida-
vuelta. Las validaciones deben estar controladas en este método.
- ONACTION… (Manejador de acciones)
Diferentes categorías de Interfaces de Web Dynpro
Las interfaces Web Dynpro proporcionadas por FPM se pueden dividir en dos categorías:
Categoría 1; implementada por más de un component de Web Dynpro. Pueden tener más de
una instancia, y cada instancia participar sólo en una parte del bucle de eventos durante el
tiempo de vida de la Application. Las siguientes interfaces son de este tipo:
IF_FPM_UI_BUILDING_BLOCK
IF_FPM_TRANSACTION
IF_FPM_WORK_PROTECTION
IF_FPM_RESOURCE_MANAGER
Categoría 2; implementada sólo por un component de Web Dynpro que tiene una sola
instancia que participa en todos los bucles de eventos durante el tiempo de vida de la
Application. Las siguientes interfaces son de este tipo:
IF_FPM_APP_CONTROLLER
IF_FPM_SHARED_DATA
IF_FPM_OIF_CONF_EXIT
IF_FPM_GAF_CONF_EXIT
Página principal de Floorplan (OVP)
OVP está basada en el component de Web Dynpro FPM_OVP_COMPONENT. Es una
configuración de Applications que contienen un conjunto de páginas y la navegación entre
ellas.
Estructura de una OVP
Áreas de contenido
Cada OVP tiene al menos un Área de contenidos que pueden estar divididas en varias
secciones cada sección puede contener numerosas Views específicas de la Application (UIBBs)
y bloques de construcción de interfaces de usuario genéricos (GUIBBs). Cada área de
contenidos está asociada a un tipo, y estos pueden ser:
View principal
Página de edición
Pantalla inicial
Pantalla de diálogo
Secciones
Se usan para estructurar un área de contenidos. Son posibles varios layouts para cada sección,
que determinan el nº de columnas de la sección con el atributo “Section Layout”. El siguiente
dibujo ilustra la estructura de un área de contenidos de una OVP:
Personalización
La personalización puede cambiarse de “ON” a “OFF” en el editor de configuración o con un
método API llamado para toda la Application o para un área de contenidos dada. Cuando está
activada, es posible expandir / contraer los paneles, Arrastrar y soltar UIBBs y el editor de
personalización puede ser abierto en tiempo de ejecución, lo que permite realizar actividades
adicionales.
Editor de Personalización
Para abrir el Editor de Personalización en tiempo de ejecución, hacer click en el icono
“Personalize / Personalizar” en la página de la barra de herramientas. El editor de
Personalización nos permite realizar las siguientes actividades:
Añadir o borrar UIBBs a las secciones
Cambiar el nº de columnas dentro de una sección usando la lista desplegable “Layout
Type”.
Decidir si los UIBBs en una columna deben estar apilados y el número de pilas por
columna.
Cuando la Application se ejecuta en modo de configuración (experto) (parámetro URL:
sap-configmode = X), los ajustes de personalización son válidos para todos los usuarios
finales que no tienen sus propios ajustes individuales. Si se selecciona el botón “Reset
to Default” restaura la personalización de administración si existe, y si no existe, los
ajustes de configuración originales.
Botones de la barra de herramienta de la UIBB
Se puede definir el conjunto de botones de la barra de herramientas que se mostrarán
realizando una de estas 2 acciones:
Definir una lista de acciones en el editor de configuración del área de contenido en el
que se asigna la UIBB. Se pueden definir acciones y asignar los eventos FPM
correspondientes y áreas de contenidos de destino.
Si las acciones UIBB están expuestas en tiempo de ejecución, por ejemplo cuando el
UIBB se basa en un UIBB genérico y la lista de acciones es proporcionada por la clase
alimentadora, se puede seleccionar el atributo “Acciones de captura / Capture
Actions” de la barra de herramientas de UIBB en el editor de configuración. FPM utiliza
entonces la API de UIBB para determinar las acciones de barras de herramientas
disponibles en tiempo de ejecución y los botones resultantes se agregan a la barra de
herramientas del panel de cabecera al lado de los botones configurados.
Eventos FPM relacionados con el OVP para la navegación
Se pueden utilizar los siguientes eventos para habilitar la navegación entre las áreas de
contenido OVP:
- FPM_CALL_FULL_SCREEN; navegar a la página de edición
- FPM_CALL_DEFAULT_EDIT_PAGE; navegar a la página de edición por defecto
- FPM_BACK_TO_MAIN; Abandonar la página de edición y navegar de vuelta a la vista
general de la página principal (sin guardar los datos).
- FPM_SAVE_AND_BACK_TO_MAIN; Evento transaccional. Abandonar la página de
edición y navegar de vuelta a la vista general de la página principal.
- FPM_CHANGE_CONTENT_AREA; sustituir el actual área de contenido por otro área de
contenido.
- FPM_OPEN_DIALOG; Abre una ventana de dialogo. Hay que pasar el ID del área de
contenido del cuadro de diálogo usando el parámetro del evento
TARGET_CONTENT_AREA.
Modificaciones Dinámicas en tiempo de ejecución
Se pueden realizar de 2 formas:
1- Con una API para hacer ajustes simples de los botones de la barra de herramientas: La
interfaz IF_FPM_CNR_OVP proporciona métodos para modificar los botones de la
barra de herramientas de una Application OVP en tiempo de ejecución. Esta interfaz
incluye los siguientes métodos:
- GET_CONTENT_AREAS; Obtener la lista de áreas de contenido disponibles en el
momento.
- GET_CURRENT_CONTENT_AREA; Obtener el actual área de contenidos.
- GET_UIBBS; Obtener una lista de UIBBs para un area de contenidos o sección.
- GET_TOOLBAR_ELEMENTS; obtener una lista de los elementos de la barra de
herramientas disponible.
- GET_TOOLBAR_BUTTON; obtener los atributos de un botón de la barra de
herramientas.
- GET_TOOLBAR_TOGGLE_BUTTON; obtener los atributos de un botón biestado de
la barra de herramientas.
- GET_TOOLBAR_BUTTON_CHOICE; obtener los atributos de un botón con lista
desplegable de la barra de herramientas.
- ADD_TOOLBAR_BUTTON; añadir un nuevo botón a la barra de herramientas
existente.
- ADD_TOOLBAR_TOGGLE_BUTTON; añadir un nuevo botón biestado a la barra de
herramientas existente.
- ADD_TOOLBAR_BUTTON_CHOICE; añadir un nuevo botón con lista desplegable a
la barra de herramientas existente.
- CHANGE_TOOLBAR_BUTTON; modificar un botón de la barra de herramientas
existente.
- CHANGE_TOOLBAR_TOGGLE_BUTTON; modificar un botón biestado de la barra
de herramientas existente.
- CHANGE_TOOLBAR_BUTTON_CHOICE; modificar un botón con lista desplegable
de la barra de herramientas existente.
- REMOVE_TOOLBAR_ELEMENT; eliminar un elemento de la barra de herramientas.
- GET_APPLICATION_PARAMETERS; obtener los parámetros de la application.
- CHANGE_APPLICATION_PARAMETERS; modificar los parámetros de la Application.
- GET_PAGE_SELECTOR; obtener la etiqueta de la ventana con la lista desplegable
del selector de página y las entradas.
- CHANGE_PAGE_SELECTOR; modificar la etiqueta de la ventana con la lista
desplegable del selector de página y las entradas.
- SET_GENERIC_BUTTON_ACTION_TYPE; establecer el tipo de acción de los botones
genéricos de la OVP.
- SET_SIDE_PANEL_LINK; definir el enlace del panel lateral.
- SET_TAG_VALUE; Establecer un valor para una etiqueta (panel lateral).
2- Con una API para un acceso completo. Un component Web Dynpro de una Application
o una clase ABAP pueden implementar la interfaz IF_FPM_OVP_CONF_EXIT que
proporciona el método OVERRIDE_EVENT_OVP. Este método permite acceder a la
interfaz OVP de tipo IF_FPM_OVP. Además de los métodos de IF_FPM_CNR_OVP
interfaz, que se describen en la tabla anterior, también puede utilizar los siguientes
métodos para cambiar el estado plano OVP dinámicamente:
- ADD_CONTENT_AREA; añadir nueva área de contenidos.
- CHANGE_CONTENT_AREA; modificar un área de contenidos existente.
- REMOVE_CONTENT_AREA; eliminar un área de contenidos existente.
- GET_SECTIONS; obtener una lista de todas las secciones de un área de contenidos.
- ADD_SECTION; añadir una nueva sección al área de contenidos.
- CHANGE_SECTION; modificar una sección existente.
- REMOVE_SECTION; eliminar una sección.
- ADD_UIBB; añadir una UIBB a un área de contenido o sección existente.
- CHANGE_UIBB; modificar una UIBB existente.
- REMOVE_UIBB; borrar una UIBB.
- GET_EVENT; obtener el evento actual de FPM.
- IS_EVENT_CANCELLED; devuelve el resultado indicando si el actual evento FPM se
ha cancelado o no.
- CANCEL_EVENT; cancelar el procesamiento de eventos
- IF_FPM_WIRE_MODEL~ADD_WIRE; añadir un wire.
- IF_FPM_WIRE_MODEL~REMOVE_WIRE; borrar un wire.
- IF_FPM_WIRE_MODEL~GET_WIRES; obtener todos los wires.
Ajustar una View de un ALV predeterminada para una
UIBB freestyle
Cuando se añade una UIBB freestyle en una Application se puede seleccionar la ALV
predeterminada que se mostrará cuando se lanza la UIBB freestyle en tiempo de ejecución.
Diseñar ajustes de tiempo en el editor de configuración de FPM
Para seleccionar las Views predeterminadas para ALV realizar los siguientes pasos:
1. Implementar la interfaz de Web Dynpro IF_FPM_CFG_CONF_ALV_USAGE en la UIBB
freestyle que tiene uso en el component de Web Dynpro SALV_WD_TABLE.
2. Usar el editor de configuración de FPM, añadir este freestyle UIBB a nuestro floorplan.
3. En la View “configuración del Component / Component Configuration” del editor de
configuraciones, seleccionar el botón “Atributos / Attributes” de la UIBB embebida. Se
muestran los atributos de la UIBB, incluyendo la tabla “Tablas configurables de ALV /
Configurable ALV Tables”.
4. En esta tabla, usar la ayuda de búsqueda para introducir una View ALV para cada uso
del component de la Web Dynpro SALV_WD_TABLE.
Representación de las Views de ALV en tiempo de ejecución
La View del ALV no se aplica automáticamente a la utilización en el component de Web Dynpro
SALV_WD_TABLE en nuestro UIBB. Debemos instanciar su uso en el component
SALV_WD_TABLE con la correspondiente clave de configuración. Para ello, hay que aplicar las
claves de configuración ALV en el método WDDOINIT de la UIBB freestyle con el siguiente
código adjunto:
código método wddoinit.txt
Component de diálogo de FPM
Proporciona un framework de soporte para cuadros de diálogo. Los cuadros de diálogo de FPM
se admiten en todos los foorplans (OIF, GAF, y OVP).
Estructura de un cuadro de diálogo FPM
Pueden ser UIBBs o GUIBBs freestyle. Las zonas CNR and IDR no están disponibles para cuadros
de diálogo. Ejemplo:
En FPM se soporta hasta 3 niveles de cuadros de diálogo abiertos:
El cuadro de diálogo 3 sólo muestra el botón “Cerrar / Close”, pero los otros 2 primeros
muestran los botones “Ok”y “Cancelar / Cancel”.
Características del cuadro de diálogo FPM
Por defecto tienen 2 botones (Aceptar y Cancelar) manejados por el propio FPM.
Admiten todos los tipos de UIBB. Por tanto pueden tener botones específicos de la
Application manejados por la UIBB y embebidos dentro de ella. Por ejemplo:
Tiene su propia área de mensajes y manejador de mensajes. Puede lanzar mensajes
locales y globales (Ver “Administrador de mensajes para cuadros de diálogo FPM”).
Pueden tener más de una UIBB configurable (ver “Configurar cuadros de diálogo
FPM”).
Con ellos se puede a la página de error de error FPM (ver “Página de error de error
FPM en cuadros de diálogo”).
Soportan navegación URL y Applications Web Dynpro.
Soportan el uso de cuadros de diálogo de pérdida de datos, manejados en el bucle de
eventos.
Pueden lanzar eventos como FPM_SAVE, FPM_NEW y FPM_REFRESH.
Pueden ser abiertos desde la barra de herramientas de la Application (ver “Configurar
cuadros de diálogo FPM”).
Soporta todas las GUIBBs y UIBBs compuestas.
Soporta transferencia de datos entre otros cuadros de diálogo.
Crear y configurar un cuadro de diálogo FPM
Cada cuadro es unívocamente identificable por el “ID del cuadro de diálogo / Dialog box ID” y
se configura en el editor de configuración de FPM. El procedimiento es el siguiente:
1. Seleccionar “Add / Añadir” en el editor de configuración, debajo de la jerarquía. Elegir
“Dialog Box / Cuadro de diálogo”
2. Introducir un nombre en la “ID del cuadro de diálogo / Dialog Box ID”.
3. Introducir los atributos de UIBB para el cuadro de diálogo con el botón “Añadir UIBB /
Add UIBB”de la pantalla del editor de configuración.
4. Cambiar el Layout seleccionando el nodo del cuadro de diálogo en la jerarquía y
eligiendo el tipo de Layout como se muestra en el pantallazo:
5. En esta misma pantalla de atributos se puede cambiar el conjunto de botones que se
muestran con la lista desplegable “Dialog Buttons / Botones de diálogo”.
6. Para pasar de uno a otro entre varios cuadros de diálogo de una sola Application,
podemos hacerlo con el radiobutton “Dialog Box / Cuadro de diálogo” de la jerarquía.
7. Se pueden lanzar cuadros de diálogo desde la barra de herramientas. Creando un
botón (en el ejemplo mostrado se llama Trigger Dialog) con el evento FPM asociado
FPM_OPEN_DIALOG_BOX pasando el ID del cuadro de diálogo al parámetro
DIALOG_BOX_ID (para ello, en la tabla que se muestra en “Maintain Event Parameters
/ actualizar parámetros de eventos” hay que añadir el nombre del evento). Ver
ejemplo:
Abrir y cerrar cuadros de diálogo FPM
Los cuadros de diálogo se abren de 2 formas:
- Con la Api IF_FPM; que contiene el método OPEN_DIALOG_BOX. Este método
tiene los siguientes parámetros:
IV_DIALOG_BOX_ID
IS_DIALOG_BOX_PROPERTIES (opcional)
IO_EVENT_DATA (opcional)
- Con un evento de FPM (FPM_OPEN_DIALOG), como en el ejemplo del paso 7 del
apartado anterior:
cl_fpm_event=>gc_event_open_dialog_box
Ejemplo:
código evento OPEN_DIALOG_BOX.txt
El cerrado del cuadro de diálogo lo controla FPM con el evento FPM_CLOSE_DIALOG:
cl_fpm_event=>gc_event_close_dialog_box
Procesamiento de eventos en cuadros de diálogo
Los eventos de FPM o los eventos específicos de una Application pueden ser manejados en los
cuadros de diálogo de FPM.
Transferencia de datos en cuadros de diálogo
Se realiza con el parámetro IO_EVENT_DAT del evento open_dialog_box. Establece el valor a
transferir y lo pasa mientras está abierto otro cuadro de diálogo FPM.
El atributo MV_IS_DIALOG_MODE
El atributo IF_FPM~MV_IS_DIALOG_MODE proporciona información sobre el estado de una
Application, ya sea en un cuadro de diálogo o en una pantalla principal. La Application puede
leer el estado (abierto o cerrado) el uso de este atributo e indica si la aplicación está en el
cuadro de diálogo o en la pantalla principal. Ejemplo:
DATA: lo_fpm TYPE REF TO if_fpm,
lv_window_id TYPE fpm_dialog_window_id.
lv_window_id = ‘CONTENT_AREA_1’.
lo_fpm = cl_fpm_factory=>get_instance( ).
lo_fpm->open_dialog_box( EXPORTING
iv_dialog_box_id = lv_window_id ).
Administrador de mensajes para cuadros de diálogo FPM
FPM administra el control de los mensajes en términos de visibilidad y duración en los cuadros
de diálogo, como se explica en el cuadro adjunto:
Página de error en un cuadro de diálogo FPM
Cuando se encuentra un error durante la navegación o procesamiento de un cuadro de
diálogo, éste desaparece automáticamente y es sustituido por la página de error.
Bloque de construcción de Interfaz genérica de usuario
(GUIBB)
GUIBB son plantillas con las cuales la Application define los datos que se mostrarán junto con
la configuración. La pantalla concreta de los datos de la interfaz de usuario no se determina ni
se genera por el GUIBB hasta el tiempo de ejecución. FPM suministra los siguientes GUIBB:
Form component (Component de Web Dynpro: FPM_FORM_UIBB)
List component (Component de Web Dynpro: FPM_LIST_UIBB)
Tabbed component (Component de Web Dynpro: FPM_TABBED_UIBB)
Search component (Component de Web Dynpro: FPM_SEARCH_UIBB)
Launchpad component (Component de Web Dynpro: FPM_LAUNCHPAD_UIBB)
Clases alimentadoras
Son las clases que proporcionan toda la información necesaria para los GUIBB. Implementan
las siguientes interfaces:
- IF_FPM_GUIBB_FORM; para form components
- IF_FPM_GUIBB_LIST; para list components
- IF_FPM_GUIBB_SEARCH; para search components
Estructura
Con el método GET_DEFINITION, la clase define el catálogo de campos del component y
suministra el component con los datos de la Application en tiempo de ejecución con el método
GET_DATA.
Características
Están basadas en una interfaz predefinida que suministra todos los métodos necesarios para
estandarizar la comunicación entre la Application y los GUIBBs
Esta comunicación abarca lo siguiente:
- Definición de la Application
- Definición del Layout y las dependencias entre campos
- La acción opcional basada en metadatos
- El manejador de acciones / eventos y envío de datos.
Vamos a pasar a explicar más detalladamente los 5 GUIBB de FPM:
Form Component (GUIBB FORM)
Es una plantilla de diseño genérica para mostrar datos en un formulario y que está
implementada usando el component de Web Dynpro FPM_FORM_UIBB.
Estructura
Un FORM está compuesto por varios sub-objetos:
- ELEMENT; Son combinaciones de campos y sus descriptores.
- MELTINGGROUP; un grupo de varios campos
- TOOLBAR; contiene botones con acciones asignadas que pueden ejecutarse desde el
FORM.
- GROUP; consiste en ELEMENTs, MELTINGGROUPs y TOOLBARs de un tipo predefinido.
Hay 3:
Pantalla completa con una columna
Pantalla completa con dos columnas
Mitad del ancho de la pantalla con una columna
Interfaz IF_FPM_GUIBB_FORM
Los métodos que debemos implementar como mínimo de esta interfaz son:
- GET_DEFINITION; permite al alimentador facilitar toda la información necesaria para
la configuración de un FORM: la lista de campos disponibles y sus propiedades, y la
lista de acciones (eventos de FPM).
- GET_DATA; Llamado en el bucle de eventos de FPM y reenvía el evento de FPM
PROCESS_BEFORE_OUTPUT a la clase alimentadora. Aquí se pueden especificar los
datos del formulario después de que el evento haya sido procesado.
Además existen los siguientes métodos:
- GET_PARAMETER_LIST; para definir una lista de parámetros que soporte la clase
alimentadora.
- INITIALIZE; llamado en tiempo de ejecución cuando se crea el FORM.
- FLUSH; Primer método llamado del bucle de eventos. Se utiliza para enviar los datos
del formulario modificados a otros componentes de la misma aplicación.
- PROCESS_EVENT; llamado dentro del bucle de eventos para que tenga lugar el
procesamiento de eventos.
- GET_DEFAULT_CONFIG; para obtener la configuración por defecto. Evita que el
usuario tenga que crear desde 0 un formulario.
- CHECK_CONFIG; para realizar chequeos en la configuración inmediatamente antes de
guardar.
Puede verse una descripción más detallada de los métodos y sus parámetros en el siguiente
documento (en inglés):
métodos de la interfaz IF_FPM_GUIBB_FORM.docx
Para editar un component FORM, ver el capítulo “Editor de formularios para el administrador
de Floorplan”.
Usar la visualización del tipo CHECKBOX_GROUP en un Form
Un tipo checkbox_group se muestra como en el siguiente ejemplo:
El campo debe ser de tipo carácter y longitud igual al nº de checkbox que queremos.
Valores por defecto para un checkbox se pueden establecer en el campo.
Con el método FLUSH se actualizan los datos en el campo, por ejemplo, así quedaría el valor
del campo con el checkbox group del pantallazo superior:
X______ (la primera posición marcada y las otras 6 vacías)
Layouts para GROUPs en un formulario
Existen 2 posibilidades:
Versión previa de Layout para GROUPs:
Podemos organizar los GROUPs dentro un formulario dependiendo del tipo elegido
(pantalla completa con una columna, pantalla completa con dos columnas, mitad del
ancho de la pantalla con una columna).
Nueva versión de Layout para GROUPs:
Un Layout de tipos “2 columnas” puede asignarse a un formulario dentro de la
jerarquía. Los GROUPs pueden ir en una u otra columna, y siendo todos del tipo “mitad
del ancho de la pantalla con una columna”. Cada columna se representa por separado
y las alturas de grupo no dependen del grupo de al lado.
Añadir Formulario
Se pueden añadir formularios adicionales a una Application de FPM, posicionándolo en los
siguientes elementos:
- En una sub-view
- En un paso principal
- En un sub-paso
- En un tabbed component
- En un a tabbed component en una pestaña de UIBB
El procedimiento es el siguiente:
Paso 1: Llamar al editor de configuración de FPM
1. Seleccionar una APPlication de Web Dynpro en el navegador de objetos del workbench
2. En el explorador de la Web Dynpro ir a “Display Web Dynpro Configuration screen /
Mostrar la pantalla de configuración de Web Dynpro” -> “Web Dynpro Configuration /
elegir configuración Web Dynpro” -> “Test” -> “Execute / Ejecutar”.
3. En esta ventana, seleccionar el enlace “Adaptar configuración / Adapt Configuration”
4. En el editor de components Webdynpro, en la pantalla de personalización, pulsar en
“Modificar / Change”
5. En la ventana“personalización de componentes, <nombre de Application / Component
Customizing <application name>”hay que asegurarse de que la View “Components
definidos / Component-Defined” está en “ON”.
Paso 2: Añadir un formulario
1. Seleccionar el lugar en el que deseamos colocarlo dentro de la previsaulización
2. Si no hay UIBB definido, elegir “Atributos / Attributes”.
3. Si ya hay una UIBB asignada, pulsar “Añadir UIBB / Add UIBB” o “Añadir formulario
UIBB /Add Form UIBB.
4. Especificar el UIBB como component FORM introduciendo en la vista de atributos:
FPM_FORM_UIBB en el campo “Component”
FORM_WINDOW en el campo “View”
Un nombre para el campo “Nombre de la configuración / Configuration Name”.
5. Guardar.
Paso 3: Configurar el formulario
1. Seleccionar “Configurar UIBB / Configure UIBB”
2. En la pantalla “Editor for Web Dynpro ABAP Components — Configuration / editor de
components de Web Dynpro ABAP — configuración” seleccionar “Crear / Create”.
3. Introducir descripción y OK.
4. En la ventana de diálogo del editor de clases alimentadoras, introducir la clase que
queremos asignar al formulario.
5. Seleccionar editar parámetros y elegir los parámetros de la clase alimentadora y OK.
Component List (GUIBB LIST)
Es una plantilla de diseño genérica para mostrar datos en una lista y que está implementada
usando el component de Web Dynpro FPM_LIST_UIBB.
Estructura
Un LIST está compuesto por un número de columnas. La view de componentes definidos nos
da la oportunidad de especificar:
- Qué datos se muestran y en qué columnas
- Tipo mostrado usado en cada columna.
- Orden de las columnas.
- Nº de columnas y filas mostradas a la vez.
Interfaz IF_FPM_GUIBB_LIST
Los métodos que debemos implementar como mínimo de esta interfaz son:
- GET_DEFINITION; permite al alimentador facilitar toda la información necesaria para
la configuración de una LIST: la lista de campos disponibles y sus propiedades, y la lista
de acciones (eventos de FPM).
- GET_DATA; Llamado en el bucle de eventos de FPM y reenvía el evento de FPM
PROCESS_BEFORE_OUTPUT a la clase alimentadora. Aquí se pueden especificar los
datos de la lista después de que el evento haya sido procesado.
Además existen los siguientes métodos:
- GET_PARAMETER_LIST; para definir una lista de parámetros que soporte la clase
alimentadora.
- INITIALIZE; llamado en tiempo de ejecución cuando se crea el LIST.
- FLUSH; Primer método llamado del bucle de eventos. Se utiliza para enviar los datos
de la lista modificados a otros componentes de la misma aplicación.
- PROCESS_EVENT; llamado dentro del bucle de eventos para que tenga lugar el
procesamiento de eventos.
- GET_DEFAULT_CONFIG; para obtener la configuración por defecto. Evita que el
usuario tenga que crear desde 0 una lista.
- CHECK_CONFIG; para realizar chequeos en la configuración inmediatamente antes de
guardar.
Puede verse una descripción más detallada de los métodos y sus parámetros en el siguiente
documento (en inglés):
métodos de la interfaz IF_FPM_GUIBB_LIST.docx
Interfaz IF_FPM_GUIBB_LIST_PAGING
Ésta es una interfaz opcional por si la Application quiere hacer uso de la función de paginación
para LISTs GUIBB. Esto se utiliza cuando no se puedan cargar todas las entradas de una lista a
la vez. (El nº que determina su uso es de Aprox. 100)
Los métodos que debemos implementar como mínimo de esta interfaz son:
- GET_DEFINITION; permite al alimentador facilitar toda la información necesaria para
la configuración de un LIST: la lista de campos disponibles y sus propiedades, y la lista
de acciones (eventos de FPM).
- PROCESS_EVENT; llamado dentro del bucle de eventos para que tenga lugar el
procesamiento de eventos.
- GET_DATA; Llamado en el bucle de eventos de FPM y reenvía el evento de FPM
PROCESS_BEFORE_OUTPUT a la clase alimentadora. Aquí se pueden especificar los
datos de la lista después de que el evento haya sido procesado.
Además existen los siguientes métodos:
- GET_PARAMETER_LIST; para definir una lista de parámetros que soporte la clase
alimentadora.
- INITIALIZE; llamado en tiempo de ejecución cuando se crea el LIST.
- GET_ABSOLUTE_AMOUNT_OF_ROWS; llamado cada vez que se cambian los datos de
la lista.
- FLUSH; Primer método llamado del bucle de eventos. Se utiliza para enviar los datos
de la lista modificados a otros componentes de la misma aplicación.
- GET_PAGE; llamado cada vez que la lista necesita datos del alimentador, por ejemplo
cuando el ususario hace scroll.
Puede verse una descripción más detallada de los métodos y sus parámetros en el siguiente
documento (en inglés):
métodos de la interfaz IF_FPM_GUIBB_LIST_PAGING.docx
Para editar un component LIST, ver el capítulo “Editor de listas para el administrador de
Floorplan”.
Añadir Lista
Se pueden añadir LISTs adicionales a una Application de FPM, posicionándolo en los siguientes
elementos:
- En una sub-view
- En un paso principal
- En un sub-paso
- En un tabbed component
- En un a tabbed component en una pestaña de UIBB
El procedimiento es el siguiente:
Paso 1: Llamar al editor de configuración de FPM
1. Seleccionar una APPlication de Web Dynpro en el navegador de objetos del workbench
2. En el explorador de la Web Dynpro ir a “Display Web Dynpro Configuration screen /
Mostrar la pantalla de configuración de Web Dynpro” -> “Web Dynpro Configuration /
elegir configuración Web Dynpro” -> “Test” -> “Execute / Ejecutar”.
3. En esta ventana, seleccionar el enlace “Adaptar configuración / Adapt Configuration”
4. En el editor de components Webdynpro, en la pantalla de personalización, pulsar en
“Modificar / Change”
5. En la ventana“personalización de componentes, <nombre de Application / Component
Customizing <application name>”hay que asegurarse de que la View “Components
definidos / Component-Defined” está en “ON”.
Paso 2: Añadir una lista
1. Seleccionar el lugar en el que deseamos colocarla dentro de la previsualización
2. Si no hay UIBB definido, elegir “Atributos / Attributes”.
3. Si ya hay una UIBB asignada, pulsar “Añadir UIBB / Add UIBB” o “Añadir lista UIBB /Add
list UIBB.
4. Especificar el UIBB como component LIST introduciendo en la vista de atributos:
FPM_LIST_UIBB en el campo “Component”
LIST_WINDOW en el campo “View”
Un nombre para el campo “Nombre de la configuración / Configuration Name”.
5. Guardar.
Paso 3: Configurar la lista
1. Seleccionar “Configurar UIBB / Configure UIBB”
2. En la pantalla “Editor for Web Dynpro ABAP Components — Configuration / editor de
components de Web Dynpro ABAP — configuración” seleccionar “Crear / Create”.
3. Introducir descripción y OK.
4. En la ventana de diálogo del editor de clases alimentadoras, introducir la clase que
queremos asignar a la lista.
5. Seleccionar editar parámetros y elegir los parámetros de la clase alimentadora y OK.
Información útil adicional sobre el component LIST
En la jerarquía en la configuración de component de la Application, está disponible el siguiente
atributo:
- Lead Selection Action Assignment, con el que se puede asignar la ID de un evento FPM
a la selección principal. En tiempo de ejecución, cuando ocurre la selección, se lanza el
evento seleccionado. Si no se asigna ningún evento, se asigna automáticamente el
IF_FPM_GUIBB_LIST=>GC_FPM_EVENT_ON_LEAD_SEL
En la jerarquía en la configuración de component del componente LIST, si elegimos “Ajustes /
Settings” están disponibles los siguientes atributos:
- Contador de columnas
- Contador de filas
- Evento de selección; como una tabla Web Dynpro, una lista ofrece 2 tipos de selección
en tiempo de ejecución:
Selección principal (Botón izquierdo del ratón -> un solo registro)
Selección normal (Botón derecho del ratón -> varios registros)
- Modo de selección; determina si es posible seleccionar varias filas
- Comportamiento de la selección; comprueba si las filas actualmente seleccionadas
son deseleccionadas cuando el usuario hace una nueva selección.
Los eventos FPM y el component List
Un component List toma parte de cada bucle de eventos de FPM, y también puede lanzar
eventos por sí mismo de alguna de las 3 formas siguientes:
- Eventos de celda; la ID se pasa al parámetro:
IF_FPM_GUIBB_LIST=>GC_GUIBB_LIST_ON_CELL_ACTION
Y los valores de fila y columna correspondientes se pasan en los parámetros:
IF_FPM_GUIBB_LIST=>GC_EVENT_PAR_ROW
IF_FPM_GUIBB_LIST=>GC_EVENT_PAR_COLUMN_NAME
- Eventos de barra de herramientas; en este caso el ID de evento es el ID de la acción
que fue definida por la clase de alimentación en el método GET_DEFINITION. Se usan
los parámetros siguientes para obtener datos de interés de un elemento determinado
de la barra de herramientas:
IF_FPM_GUIBB_LIST=>GC_EVENT_PAR_TOGGLE_STATE (para botón biestado),
IF_FPM_GUIBB_LIST=>GC_EVENT_PAR_INPUT_VALUE (para campo de entrada)
IF_FPM_GUIBB_LIST=>GC_EVENT_PAR_DROP_DOWN_KEY (para una lista
desplegable).
- Eventos de selección; cuando se selecciona un o varias filas.
Representación de una Lista GUIBB como ALV
En la pantalla de configuración de components, seleccionar Ajustes desde la jerarquía y en la
sección de atributos, la lista desplegable de estilos de representación mostrará las siguientes
opciones:
- Representación estándar; formato simple de tabla
- Representación como una repetición de columna; formato de columna simple
- Representación como ALV; con las funcionalidades de ordenar, filtrar, imprimir y
exportar a Excel.
Actividades en tiempo de ejecución
Si se ha elegido mostrarse la representación ALV, el usuario puede realizar cambios en la
disposición y guardar. La siguiente vez que se muestre el ALV puede recuperarse esta
disposición desde la lista desplegable “View / Vista”.