manual de fpm (español)1de2

61
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.

Upload: alberto-j-garrido-checa

Post on 27-Dec-2015

169 views

Category:

Documents


14 download

TRANSCRIPT

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”.

Otros datos importantes:

- La representación ALV consume mucha más memoria

- Si se elige una representación ALV nunca se debe pasar a otro tipo de representación

en una versión exterior porque se pierden los cambios.

- Los eventos en una lista ALV pueden no ser los mismos que en el component LIST.