Curso de Web-Dynpro
Curso de Web-Dynpro
• El proyecto Eclipse empezó en 2001 en IBM, como un proyecto código abierto bajo
la licencensia (CPL). SAP Netweaver Development Studio esta integrado en Eclipse.
• Eclipse implementa la habilidad de mejorar el ambiente de desarrollo mediante
Plug-Ins.
• Un modelo de Web
Dynpro puede ser
alimentado con
información de las
siguientes fuentes:
– Módulos RFC
– Enterprise Java Beans
(EJBs), los cuáles
encapsulan lógica de la
aplicación.
– Web Services.
• El diseño clásico de MVC crea una arquitectura para desacoplar los datos.
• Desacopla la lógica de presentación de la lógica de la aplicación.
• Desacopla la lógica de negocio de la lógica de la aplicación.
• Todos los Custom Controllers guardan sus datos en una jerarquía llamada
Context.
• Todos los Controllers son programas independientes que no tienen ningún
función en otros Controllers.
• El Custom Controller reside en memoria hasta que su componente exista.
• Navigation Modeler
Es un editor gráfico en el cuál se pueden definir links de navegación que
existen entre varias views.
• El Navigation Modeler permite manipular:
• View Sets
• Views
• Inbound and Outbund Plugs
• Navigation Links
• Outbund Plugs
Llamar a un método Outbund Plug provoca lanzar un evento de
navegación.
• Inbound Plugs
Inbound Plugs son métodos manejadores de eventos que son invocados
cuando se disparo un evento Outbund Plug.
• Links
Outbund e Inbound Plugs son relacionados a través de un Link, creado en
el Navigation Editor.
• Context Mapping
Context Mapping permite a un nodo del contexto de un controller suplir o
compartir datos con otro nodo de contexto de otro controlador. Este es el principal
mecanismo para compartir datos entre controladores.
• Data Binding
Data Binding significa que los datos son automáticamente transportados del
contexto de unView Controller a un elemento UI.
• Instance methods
• Shorcut variables
• Implementación de código
Cada Web Dynpro Controller es un programa de Java. La definición de estos
programas es generada automáticamente.
• Standard Hook Methods
En cada Controller hay ciertos métodos que siempre están presentes. Estos
métodos viene vacíos y se puede agregar cualquier código que el
programador desee.
• wdDoInit ()
Este método es llamado una sola vez durante el ciclo de vida del controller.
Toda la inicialización debería hacerse aquí.
• wdDoExit()
Este método es llamado únicamente en el término de vida del controller.
• wdDoPostProcessing()
Es posible usar este método para validar datos antes que el proceso de
negocio tome el control del programa.
• wdBeforeNavigation()
Este método es llamado solo antes se procesan los procesos de navegación,
esto permite implementar código para modificar la navegación.
• Para crear un Intance Method, edita el Controller y escoge el tab Methods y dar
click en el botón New.
• Seleccionar si se requiere crear un normal method o un event handler method.
• Seleccionar el nombre y tipo de retorno del método.
• Finalmente seleccionar los parámetros que recibe el método.
• //@@begin others
• Este bloque delimita el área en la cuál se puede colocar todas las
declaraciones de member variables y declaraciones estáticas de métodos.
Estas declaraciones serán visibles para todo el controller.
• El código puesto aquí solo será visible para el controller donde se definan.
• Utility methods pueden ser declarados aquí. Ej. Suma (a, b).
• wdThis
wdThis es una variable que hace referencia al mismo Web Dynpro. Esto da
acceso a la funcionalidad estándar de WebDynpro como logging, parameter
mapping y validación.
• wdContext
wdContext es la referencia al “controller context root node”.
• wdControllerAPI
wdControllerAPI hace referencia a él API de el actual “controller”.
• wdComponentAPI
wdComponentAPI hace referencia a él “component controller”.
• Para crear un nuevo evento, edita el controller y escoge el tab Events. Presionar
el botón New.
• Ingresar el nombre del evento.
• Finalmente definir los parámetros o firma del evento.
• Context Mapping
• Interal Mapping
• External Mapping
• Context
Cada Web Dynpro Controller (excepto el interface view controller) tiene
exactamente un jerarquía de datos guardada en una estructura conocida
como un context.
• Context estructure
Normalmente la estructura (metadata) de un context será definida en
tiempo de diseño, pero también puede hacerse en tiempo de ejecución.
• Compartiendo datos entre diferentes controllers
La información dentro de un contexto de un custom controller puede
accederse por otro controller (view o custom) por una técnica llamada
context mapping. Este es el mecanismo primario para compartir datos.
• Context editor
El Context editor es un editor gráfico que permite estructurar el context de
un controller.
Importante: Se debe tener siempre abierto el Properties View cuando se edita el
context porque hay ciertas propiedades que pueden afectar críticamente el context
en tiempo de ejecución.
• Context Structure
Todos los context de los controllers tienen una estructura formada por nodes y
attributes.
• Nodes
Un context node es una abstracción usada dentro del Web Dynpro Framework.
La máxima y mínimo número de elementos dentro de una colección es limitado
a uno.
• Attributes
Un context attribute no puede existir sin un nodo.
Muchos elementos gráficos pueden disparar eventos del lado del cliente.
Estos pueden ser encontrados debajo el Event propertie del nodo, solo es
necesario asociarlo con alguna acción.
• Table
Table es un elemento más complejo que tiene como hijos más elementos,
entre los cuales están Table Column, Table CellEditor, etc.
• Message Editor
El Message Editor crea 4 tipos de mensajes – Standard, Warning, Error
y Text. Los tres primeros son usados para suplir información a la pantalla en la
forma de mensajes.
Cualquier mensaje declarado creara una constante Java Imessage{nc}
1. Seleccionar
“Preferences option”
del Window Menu.
2. Expander la rama
“Java” y seleccionar
“Editor”
3. Verificar que este
activado “Show line
numbers”
• Variables View
Permite cambiar los valores de las variables.
Las habilidades que necesita un desarrollador Web Dynpro son mínimos para
usar una interface aRFC. Solo se requiere:
• Logearse dentro un sistema SAP.
• Usar la transacción SE37 (Function Module Builder) para:
• Examinar la interface del módulo de función.
• Correr el módulo de función con los apropiados datos de test.
• Examinar la salida después de la ejecución del módulo de función.
• Usar la transacción SE11 (ABAP Dictionary) para examinar la estructura de los
parámetros de entrada o salida.
• Usar la transacción SE16 (Data Browser) para desplegar los contenidos de un
tabla de base de datos.
• Scalar Parameters
Un parámetro escalar es cualquier valor que describa un
simple campo. Estos no son desplegados directamente, sino que hay
dar doble click para desplegarlos.
• Bi-directional parameters
Dado el hecho de los parámetros CHANGING y TABLES es necesario
preservar una imagen de estos parámetros en los parámetros de
“input” y “output”.
• Es importante, que una vez hecho contruido el DC´s, se debe hacer “build” de
el DC. Esto proceso es diferente a el Rebuild Project. Cada parte pública se
convierte en archivo JAR, y proceso de DC Build reconstruye las partes
públicas.
• Procedimiento
1. En la primera pantalla presione New Technical System
2. Seleccionar Web AS ABAP y presione Next
3. Ingrese el SID de el sistema SAP, el número de instalación y el nombre
del host DB. El número de instalación puede ser encontrado ingresando
al sistema SAP y en el menú seleccionar System -> Status
Confidencial - MVM Ingeniería de Software S.A., todos los derechos reservados
Defining Technical Systems(3)
• Procedimiento
1. Ingrese el Message Server host, instance number, message server
port y logon groups.
2. Presionar Next.
3. En la siguiente pantalla puede añadir nombre de servidores y número
de instancia. Presionar Next.
• Procedimiento
• Seleccionar el producto, describiendo el sistema SAP.
• Presionar Finish.
• Paso 1
Ingresar el Client del sistema SAP.
Presionar Next.
• Maximum Pool Size: Determina cuantas conexiones deben abrirse para el actual
usuario. Incrementar este valor incrementar el tiempo para obtener una conexión.
• Maximum Connections: Máximo número de conexiones por usuario.
• Connection TimeOut: Define cuanto tiempo (en segundos) permanezca viva una
conexión después de usarla.
Confidencial - MVM Ingeniería de Software S.A., todos los derechos reservados
Defining Logical System Names(4)
• Paso 2
• Seleccionar el servidor J2EE para el cuál se requiere la conexión JCo.
• Presionar Next.
• Paso 3
• Seleccionar el tipo de conexión – Application Data o Dictionary Meta Data
• Paso 4
• Seleccionar Server y/o Logon Groups, para revisar Logon Groups
cheque la transacción SMLG.
• Presionar Next.
• Paso 5
• Si selecciono Application Data, se tendrá cuatro escenarios de
autentificación, se debe usar la adecuada, para temas de desarrollo se
deberá usar User/Password.
Para el caso de Dictionary Data solo podrá seleccionarse
User/Password.
• Presionar Next.