You are on page 1of 429

TAW12_2

Objetos ABAP y áreas de
aplicación
SAP NetWeaver

Fecha
Centro de formación
Instructores
Página Web de
formación

Manual del instructor
Versión del curso: 63
Duración del curso: 5 día(s)
Número de material: 50090661
Responsable: Christian Braun (D035329)

An SAP Compass course - use it to learn, reference it for work

Copyright
Copyright © 2009 SAP AG. Reservados todos los derechos.
Esta publicación no puede ser reproducida o trasmitida, total o parcialmente, de ninguna forma ni
para ningún propósito sin el permiso expreso de SAP AG. La información aquí contenida puede ser
modificada sin previo aviso.
Algunos productos de software distribuidos por SAP AG y sus distribuidores contienen componentes
de software que pertenecen a otros proveedores de software.

Marcas registradas

Microsoft®, WINDOWS®, NT®, EXCEL®, Word®, PowerPoint® y SQL Server® son
marcas registradas certificadas de Microsoft Corporation.

IBM®, DB2®, OS/2®, DB2/6000®, Parallel Sysplex®, MVS/ESA®, RS/6000®, AIX®,
S/390®, AS/400®, OS/390® y OS/400® son marcas registradas certificadas de IBM
Corporation.

ORACLE® es una marca registrada certificada de ORACLE Corporation.

INFORMIX®-OnLine para SAP y INFORMIX® Dynamic ServerTM son marcas registradas
certificadas de Informix Software Incorporated.

UNIX®, X/Open®, OSF/1® y Motif® son marcas registradas certificadas de Open Group.

Citrix®, Citrix logo, ICA®, Program Neighborhood®, MetaFrame®, WinFrame®,
VideoFrame®, MultiWin® y otros nombres de productos Citrix referidos aquí son marcas
registradas de Citrix Systems, Inc.

HTML, DHTML, XML, XHTML son marcas registradas o marcas registradas certificadas de
W3C®, World Wide Web Consortium, Massachusetts Institute of Technology.

JAVA® es una marca registrada certificada de Sun Microsystems, Inc.

JAVASCRIPT® es una marca registrada certificada de Sun Microsystems, Inc., utilizada bajo
licencia para tecnología desarrollada e implementada por Netscape.

SAP, SAP Logo, R/2, RIVA, R/3, SAP ArchiveLink, SAP Business Workflow, WebFlow,
SAP EarlyWatch, BAPI, SAPPHIRE, Management Cockpit, mySAP.com Logo y mySAP.com
son marcas registradas o marcas registradas certificadas de SAP AG en Alemania y en otros
países en todo el mundo. Todos los otros productos mencionados son marcas registradas o
marcas registradas certificadas de sus respectivas empresas.

Declaración de renuncia
SAP DISTRIBUYE ESTE MATERIAL SOBRE UNA BASE "AS IS" Y NO SE HACE
RESPONSABLE EXPRESAMENTE, DE FORMA DIRECTA NI INDIRECTA, INCLUYENDO
SIN RESTRICCIÓN LAS GARANTÍAS DE COMERCIABILIDAD E IDONEIDAD PARA UN
OBJETIVO PARTICULAR, EN LO QUE CONCIERNE A ESTE MATERIAL Y AL SERVICIO,
LA INFORMACIÓN, EL TEXTO, GRÁFICOS, LINKS O CUALQUIER OTRO MATERIAL Y
PRODUCTOS AQUÍ CONTENIDOS. EN NINGÚN CASO SAP SE RESPONSABILIZARÁ DE
CUALQUIER DAÑO DIRECTO, INDIRECTO, ESPECIAL, SECUNDARIO, CONSIGUIENTE,
O PUNITIVO DE CUALQUIER CLASE, INCLUIDOS SIN LIMITACIÓN INGRESOS O
GANANCIAS PÉRDIDAS, QUE PUEDAN SER RESULTADO DEL EMPLEO DE ESTOS
MATERIALES O COMPONENTES DE SOFTWARE INCLUIDOS.

g20090710150436

Sobre este manual
La función de este manual es complementar la presentación del instructor de
este curso y servir como fuente de referencia. Este manual no está pensado para
el estudio autodidacta.

Convenciones tipográficas
En esta guía se utilizan las siguientes convenciones tipográficas.
Estilo de tipo

Descripción

Texto de ejemplo

Palabras o carácteres que aparecen en la pantalla.
Aquí se incluyen nombres de campos, títulos de
pantallas, pulsadores así como nombres de menús,
vías de acceso y opciones.
También se usan como referencia a otra documentación
tanto interna como externa.

Texto de ejemplo

Palabras o frases acentuadas en textos principales,
títulos de gráficos y tablas

TEXTO DE EJEMPLO Nombres de elementos en el sistema. Aquí se incluyen
nombres de informes, nombres de programas, códigos
de transacciones, nombres de tablas y algunas palabras
claves de un lenguaje de programación cuando se
encuentran en el texto principal, por ejemplo SELECT
e INCLUDE.
Texto de ejemplo Salida en pantalla. Aquí se incluyen nombres de
archivos y directorios y sus vías de acceso, mensajes,
nombres de variables y parámetros y párrafos del
texto fuente de un programa.

10-07-2009

Texto de
ejemplo

Entrada exacta de usuario. Son palabras y carácteres
que se introducen en en el sistema exactamente como
aparecen en la documentación.

<Texto de
ejemplo>

Entrada variable de usuario. Las entradas entre
corchetes indican que se deben sustituir estas palabras
y carácteres con entradas apropiadas.

© 2009 SAP AG. Reservados todos los derechos.

iii

Sobre este manual

TAW12_2

Iconos en el texto principal
En este manual se utilizan los siguientes iconos.
Icono

Significado
Para más información, sugerencias o detalles
Nota o más explicaciones sobre el punto anterior
Excepción o precaución
Procedimientos

Indica que el objeto está visualizado en la presentación
del instructor.

iv

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

Contenido
Resumen del curso ...................................................... vii
Metas del curso ........................................................vii
Objetivos del curso..................................................... ix

Capítulo 1: Modificación de la versión estándar del sistema
SAP ............................................................................ 1
Modificación de la versión estándar del sistema SAP .............2

Capítulo 2: Ampliación de los elementos del Dictionary ....... 19
Ampliaciones de tabla ................................................ 20
Ampliaciones de texto ................................................ 30

Capítulo 3: Ampliaciones mediante exits de cliente............. 41
Exits de cliente: Resumen ........................................... 43
Gestión de ampliaciones............................................. 48
Exit de programa...................................................... 56
Exit de menú........................................................... 71
Exit de dynpro ......................................................... 79

Capítulo 4: Add-ins empresariales .................................. 95
Add-ins empresariales: Utilización ................................. 96
Creación e implementación de un BAdI ..........................100
BAdI: Información adicional ........................................ 118

Capítulo 5: Modificaciones ........................................... 127
Modificaciones .......................................................129
Realización de modificaciones .....................................135
Asistente de modificaciones ........................................145
Exit de usuario .......................................................160
El Note Assistant.....................................................167
Ajuste de modificaciones ...........................................180

Capítulo 6: Ampliaciones ............................................. 193
El nuevo concepto de ampliación..................................195

Capítulo 7: Web Dynpro: Introducción ............................ 229
Web Dynpro: Introducción ..........................................231

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

v

Contenido

TAW12_2

Capítulo 8: Controladores Web Dynpro ........................... 257
Controladores Web Dynpro.........................................258

Capítulo 9: El contexto en la fase de diseño ..................... 277
El contexto en la fase de diseño ...................................279

Capítulo 10: Definición de la interfase de usuario (UI)......... 303
Definición de la interfase de usuario (UI) .........................304

Capítulo 11: Programación de contextos y controladores .... 343
Programación de contextos y controladores .....................345

Capítulo 12: Internacionalización y mensajes ................... 391
Internacionalización y mensajes ...................................392

Índice....................................................................... 411

vi

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

Resumen del curso
Este curso, de una duración de dos semanas, ofrece una introducción detallada y
amplia de los principios básicos de la programación de objetos ABAP. También
se explica cómo realizar modificaciones de nivel especializado en la versión
estándar del sistema SAP. Además, aprenderá a evaluar los distintos métodos de
modificación y a elegir el correcto para cada caso. Web Dynpro es la tecnología
de vanguardia de SAP para la creación de interfases de usuario de aplicaciones
(UI). En este curso se explica detalladamente cómo desarrollar aplicaciones
ABAP con Web Dynpro.

Grupo destino
Este curso está dirigido a los siguientes grupos destino:

Los consultores de desarrollo responsables de adaptar y desarrollar
programas/objetos ABAP

Prerrequisitos para el curso
Conocimientos necesarios

TAW10 (Principios básicos del Workbench ABAP)
Incluido en reservas para TAW12: TAW11 E-Learning (info detallada de
ABAP)

Conocimientos recomendados

BC410: Programación de diálogos de usuario con dynpro

Detalles de la duración del curso
Capítulo 1: Modificación de la versión estándar del sistema SAP
Modificación de la versión estándar del sistema
30 Minutos
SAP
Capítulo 2: Ampliación de los elementos del Dictionary
20 Minutos
Ampliaciones de tabla
20 Minutos
Ejercicio 1: Ampliaciones de tabla
30 Minutos
Ampliaciones de texto
Capítulo 3: Ampliaciones mediante exits de cliente
Exits de cliente: Resumen
Gestión de ampliaciones
Exit de programa
Ejercicio 2: Exit de programa
Exit de menú

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

10 Minutos
20 Minutos
40 Minutos
30 Minutos
30 Minutos

vii

Resumen del curso

TAW12_2

Ejercicio 3: Exit de menú
Exit de dynpro
Ejercicio 4: Exit de dynpro

30 Minutos
30 Minutos
45 Minutos

Capítulo 4: Add-ins empresariales
Add-ins empresariales: Utilización
Creación e implementación de un BAdI
Ejercicio 5: Creación e implementación de un BAdI
BAdI: Información adicional

5 Minutos
40 Minutos
30 Minutos
15 Minutos

Capítulo 5: Modificaciones
Modificaciones
Realización de modificaciones
Asistente de modificaciones
Ejercicio 6: Implementación de modificaciones
Exit de usuario
El Note Assistant
Ajuste de modificaciones
Ejercicio 7: Ajuste de modificaciones
Ejercicio 8: Ajuste de modificaciones (opcional)

20 Minutos
20 Minutos
20 Minutos
30 Minutos
10 Minutos
30 Minutos
30 Minutos
20 Minutos
30 Minutos

Capítulo 6: Ampliaciones
El nuevo concepto de ampliación
Ejercicio 9: Puntos de ampliación implícitos
Ejercicio 10: Ampliaciones implícitas de clases
Ejercicio 11: Puntos y secciones de ampliación
explícitos
Ejercicio 12: BAdI nuevos

180 Minutos
15 Minutos
30 Minutos
15 Minutos
30 Minutos

Capítulo 7: Web Dynpro: Introducción
Web Dynpro: Introducción
Ejercicio 13: Web Dynpro: Introducción

120 Minutos
20 Minutos

Capítulo 8: Controladores Web Dynpro
Controladores Web Dynpro
Ejercicio 14: Controladores Web Dynpro

40 Minutos
30 Minutos

Capítulo 9: El contexto en la fase de diseño
El contexto en la fase de diseño
Ejercicio 15: El contexto en la fase de diseño

70 Minutos
30 Minutos

Capítulo 10: Definición de la interfase de usuario (UI)
160 Minutos
Definición de la interfase de usuario (UI)
Ejercicio 16: Interfase de usuario: Visualización de
20 Minutos
objetos de Repository MIME
Ejercicio 17: Interfase de usuario: visualización
35 Minutos
de tablas
Capítulo 11: Programación de contextos y controladores
130 Minutos
Programación de contextos y controladores

viii

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2 Resumen del curso Ejercicio 18: Acceso al contexto en tiempo de ejecución Ejercicio 19: Contexto en tiempo de ejecución: asociación de tablas internas a nodos de contexto Ejercicio 20: Contexto en tiempo de ejecución: selección de liderazgo y funciones de suministro Capítulo 12: Internacionalización y mensajes Internacionalización y mensajes Ejercicio 21: Internacionalización: texto traducible en la UI 15 Minutos 30 Minutos 30 Minutos 70 Minutos 10 Minutos Metas del curso Este curso le permitirá: • • • • • • • • • • • • • • • • 10-07-2009 Utilizar elementos fundamentales de la modelación orientada a objetos en UML Crear programas de objetos ABAP que contengan todas las técnicas de programación útiles orientadas a objetos Utilizar las herramientas relevantes para crear objetos de Repository orientados a objetos Describir y usar las áreas de aplicación de los objetos ABAP Definir. emitir y tratar excepciones basadas en clases Consultar atributos de tipo y de clase en el tiempo de ejecución Realizar modificaciones especializadas en la versión estándar del sistema SAP Evaluar los distintos métodos de modificación y elegir el adecuado en cada caso Explicar la arquitectura de un componente Web Dynpro Describir las partes de un controlador Web Dynpro Crear elementos de contexto en controladores Web Dynpro Explicar cómo se puede implementar la navegación y las transferencias de datos en componentes Web Dynpro y entre ellos Definir la interfase de usuario de un componente Web Dynpro Internacionalizar una aplicación Web Dynpro Definir y enviar mensajes en un componente Web Dynpro Definir la ayuda para entradas y la ayuda semántica para elementos de UI en un componente Web Dynpro © 2009 SAP AG. Reservados todos los derechos. ix .

to keep the course as up-to-date as possible and minimize technical inputs. 10-07-2009 . If it exists. read the list of the known errors for this course as well.com/curr-abap). emitir y tratar excepciones basadas en clases Consultar atributos de tipo y de clase en el tiempo de ejecución Realizar modificaciones especializadas en la versión estándar del sistema SAP Evaluar los distintos métodos de modificación y elegir el adecuado en cada caso Explicar la arquitectura de un componente Web Dynpro Describir las partes de un controlador Web Dynpro Crear elementos de contexto en controladores Web Dynpro Explicar cómo se puede implementar la navegación y las transferencias de datos en componentes Web Dynpro y entre ellos Definir la interfase de usuario de un componente Web Dynpro Internacionalizar una aplicación Web Dynpro Definir y enviar mensajes en un componente Web Dynpro Definir la ayuda para entradas y la ayuda semántica para elementos de UI en un componente Web Dynpro It is imperative that you read these notes. If available.Resumen del curso TAW12_2 Objetivos del curso Al finalizar este curso podrá: • • • • • • • • • • • • • • • • Utilizar elementos fundamentales de la modelación orientada a objetos en UML Crear programas de objetos ABAP que contengan todas las técnicas de programación útiles orientadas a objetos Utilizar las herramientas relevantes para crear objetos de Repository orientados a objetos Describir y aprovechar el rango de aplicaciones de objetos ABAP Definir. Reservados todos los derechos. even if you have already completed an earlier version of this course. x © 2009 SAP AG.sap. this list has deliberately been saved separately from this printed course on SAP Service Marketplace (http://service.

Attend this course at least once when it is held by an experienced instructor and possibly supervise participants during an exercise yourself.40 (at least patch level 21) or higher installed. Develop your own presentation methods and run through each demonstration at least once yourself. The training administration team should provide you with a system. including a client. xi . the WTS address was http://wts:1080/portal/corp/training. Obtain answers to any questions you have about the course materials and the exercises. Training courses at a customer site or in a third-party training center You can only establish a connection using the SAP Citrix Secure Gateway (SAP CSG) for training courses at the customer site. Clear up any questions you have on these methods. • Either a Windows Terminal Server (WTS) or local PCs with SAP GUI 6. 2.TAW12_2 Resumen del curso Training courses recommended as preparation: • • • • • • • • • SAPTEC BC400 BC401 BC402 BC410 BC425 BC427 BC430 NET310 1. Instructors and participants use the same CSG user ID for the training course.com to establish a connection to the training WTS farms. The training department sends you the data (user ID and password). Enter 10-07-2009 © 2009 SAP AG.sap. Use the link http://mywts. 3.0 (Support Package 13 or later version) or higher (ABAP Engine is sufficient). The training department should have created the user ID for the course date. including all details and optional sections). At the time this document was put together. 5. Solve all exercises on your own at least once (without the help of model solutions.html → Common_Training. you requirea CSG user ID. Training system: • SAP NetWeaver 7. create a message under the component SR-KPS-ISM. If problems arise with the server assignment. Learn the contents of this course including all items of the Online documentation for the respective subject areas. Reservados todos los derechos. 4. Therefore.

. (for example. It is located in the same area of the SAP Corporate Portal as this handbook. Change requests for participants’ exercises: In the program used to generate user IDs (transaction ZUSR). This will query you on the type and quantity of the data.... you must always generate the user IDs. Refer to the general handbook first. The following naming conventions were used for the course objects: • • • . Otherwise.. Choose Training . If. if you want to change something for demonstration purposes.. BC425..Zone. if your training course takes place at a customer site) you will have to run the data generation program (report SAPBC_DATA_GENERATOR).Resumen del curso TAW12_2 the CSG user ID and the password. Choose your region (US.BC401_CCC T_. However. The required system preparations are described below. Example objects: All repository objects for this training course belong to the following packages BC401. Atención: Never modify these standard objects... User IDs and initial passwords for participants: Unlike the application data. 10-07-2009 . Data for exercises and demonstrations: As a rule. The same applies for your course participants. Make all the preparations with regard to the following two points in accordance with the “General instructor guide for all BC4XX courses” . Reservados todos los derechos.: Model solutions . however. They contain sufficient time “intervals” for more detailed questions.: Templates In each case.. Always create copies. the more xii © 2009 SAP AG. DNW7AW. CCC is a three-character unit code. you should bear in mind that the more participants learn. If this is not the case.BC401_CCC D_. Presentation: Make sure you can open the offline presentation for this training course (version 63).BC401_CCC S_. Use the (locked) user ID TAW12_USER as a copy template. you also have the option of creating a common change request that contains a task for each user generated in this way. you may cause errors in other objects. EMEA or APJ). and NET310.. the necessary data has already been generated for your training client. Use it. Select the standard setting and set the indicator for Postings also cancelled. General notes for the course: The time specifications are recommendations only. they will probably not have the authorization to do so. Connect to Common Training if no other WTS farm option is executed for the training course.. you use the correct copy template for their user IDs.: Demonstration and example objects . or prevent other courses from being held in this system.

use the demonstration objects themselves. Other Training Courses • • 10-07-2009 TAW10 TAW11 © 2009 SAP AG.com/services/education/certification/index. Much of the code is also available as source code extracts in the presentation or in participants’ material (or both). This is why we provide extensive explanations and additional information. Similar principles apply to the objects of all packages. Development. The group may not be particularly homogenous. It is up to you whether you want to discuss these in detail. Developer/Development Consultant. We recommend keeping within the time limits from the very start. The course materials should be suitable for participants to work through again after the course. more detailed notes in each unit and lesson. You will also find other short notes in the material wherever we believe they are necessary to ensure that the content is explained in sufficient detail. xiii . Introductory phase at the start of the course: • • • • • • Introduce yourself as the course instructor Outline organizational issues Introduction of participants (optional.sap. or create similar objects during the presentation and use them. The decisive factor should be the graphics that appear in the offline presentation and the aspects they represent.epx. depends on time available. It is your task to pick out the most important statements in the material. you will find additional. Additional notes for instructors: In addition to these general notes. Reservados todos los derechos.0.TAW12_2 Resumen del curso questions they tend to ask. For more information. These packages contain more objects than you will need to present the course successfully.) Overview of the course material References to more in-depth information Overview of the course content Additional Information about Certification • Open the browser and enter the following link: http://www.SAP NetWeaver 7. You must always guarantee that the entire content can be presented.ABAP . select the following option on the next page: SAP Certified Development Associate . Select the following criteria: SAP NetWeaver. We recommend direct demonstration in the system.

10-07-2009 . Reservados todos los derechos.Resumen del curso xiv TAW12_2 © 2009 SAP AG.

. 1 ... Tipos de ampliación Objetivos del capítulo Al finalizar este capítulo podrá: • • • Describir los distintos niveles en los que se pueden realizar modificaciones en la versión estándar que suministra SAP........ Reservados todos los derechos.Capítulo 1 Modificación de la versión estándar del sistema SAP 1 Resumen del capítulo • • Resumen de las opciones de ajuste y diagrama de decisiones para seleccionar una técnica de ajuste..2 10-07-2009 © 2009 SAP AG. Elegir el método más adecuado para modificar el sistema estándar. Contenido del capítulo Lección: Modificación de la versión estándar del sistema SAP .. Enumerar los tipos de ampliación disponibles y explicar sus usos.

Reservados todos los derechos. Enumerar los tipos de ampliación disponibles y explicar sus usos. 2 © 2009 SAP AG. Elegir el método más adecuado para modificar el sistema estándar. 10-07-2009 . Se explican también los principios de las distintas opciones de ampliación. Objetivos de la lección Al finalizar esta lección podrá: • • • Describir los distintos niveles en los que se pueden realizar modificaciones en la versión estándar que suministra SAP.Capítulo 1: Modificación de la versión estándar del sistema SAP Lección: 2 TAW12_2 Modificación de la versión estándar del sistema SAP Duración de la lección: 30 Minutos Resumen de la lección En esta lección se ofrece un resumen de las opciones disponibles para modificar el sistema SAP y se esbozan las directrices que le ayudarán a decidir qué opción elegir. - Ejemplo empresarial Desea conocer las opciones disponibles para modificar y ampliar el sistema SAP.

3 .TAW12_2 Lección: Modificación de la versión estándar del sistema SAP Opciones para modificar un sistema SAP Gráfico 1: Diagrama general del curso: Modificación de la versión estándar del sistema SAP Gráfico 2: Niveles de modificación 10-07-2009 © 2009 SAP AG. Reservados todos los derechos.

0B. Reservados todos los derechos.Capítulo 1: Modificación de la versión estándar del sistema SAP TAW12_2 Puede diseñar el sistema R/3 según sus necesidades de los modos siguientes: • • • • • Customizing: Esto implica configurar funciones y procesos empresariales específicos para su sistema de acuerdo con la Guía de implementación. estos ajustes tenían que hacerse manualmente mediante utilidades de actualización. Desarrollos de cliente: Hace referencia a la creación de objetos de Repository únicos para clientes individuales en un área de nombres específico reservado para nuevos objetos de cliente. Antes del release 4. Si SAP suministra una versión modificada del objeto. Personalización: Significa realizar modificaciones en determinados atributos de visualización globales de campos (configurar valores predeterminados o campos ocultos). 10-07-2009 . Modificación: Se trata de modificaciones en los objetos del Repository SAP realizados en el centro del cliente. el sistema del cliente se debe ajustar para reflejar estas modificaciones. A partir del release 4. este procedimiento se ha automatizado gracias al Asistente de modificaciones. los desarrollos de cliente. Por ello. además de crear secuencias de menú específicas de usuario. todas las modificaciones posibles se han pensado y organizado a conciencia. las ampliaciones y las modificaciones se realizan mediante las herramientas disponibles en el Workbench ABAP. Ampliación: Esto implica crear objetos de Repository para clientes individuales que hacen referencia a objetos que ya existen en el Repository SAP. 4 © 2009 SAP AG. El Customizing y la mayor parte de la personalización se realiza mediante herramientas disponibles en el SAP Business Engineer.5A.

0B. En la categoría de desarrollo del cliente se incluye un proyecto de desarrollo si la versión estándar de SAP no contiene ya funciones parecidas a la que se está intentando desarrollar. bajo el alias /softwarepartner. 5 . intente asimilarla en su proyecto de desarrollo ampliando o modificándola mediante un exit de usuario o simplemente haciendo una copia del programa SAP adecuado. Reservados todos los derechos. si existe una función SAP parecida.TAW12_2 Lección: Modificación de la versión estándar del sistema SAP Gráfico 3: Procedimiento para funciones de modificación Si el Customizing o la personalización no pueden satisfacer sus requisitos. No hay previstos exits de usuario ni ampliaciones similares. Así pues. Sin embargo. A partir del release 4. estos ajustes tenían que hacerse manualmente mediante utilidades de actualización. puede iniciar un proyecto de desarrollo o usar una solución Complementary Software Product (CSP) si se dispone de ella. En SAP Service Marketplace encontrará un listado de las soluciones CSP certificadas por SAP. Antes del release 4. No tiene sentido copiar el objeto SAP en el área de nombres de cliente © 2009 SAP AG.5A. este procedimiento se ha automatizado gracias al Asistente de modificaciones. las nuevas versiones de objetos SAP se deben comparar con las versiones modificadas de objetos SAP que ha creado y modificado en caso necesario. Las modificaciones pueden provocar problemas: Después de un upgrade. sólo debería realizar modificaciones si: • • • 10-07-2009 El Customizing o la personalización no pueden cubrir sus necesidades.

copy. Esto incluye: • • 6 El Modelo de referencia R/3Contiene todos los modelos que describen el sistema R/3 (los modelos de proceso. 10-07-2009 . for example: SAP Customizing Implementation Guide -> Enterprise structure -> Definition -> Logistics . Reservados todos los derechos. La Guía de implementación (IMG) Visualiza una lista de todas las actividades IMG.General -> Define. check division.Capítulo 1: Modificación de la versión estándar del sistema SAP TAW12_2 Gráfico 4: Customizing Show your students the Implementation Guide. Choose the Display SAP Reference IMG button). (Select the menu path Tools -> Customizing -> IMG -> Execute Project. El Business Engineer está compuesto por todas las herramientas de implementación de SAP. Use the Customizing Organizer to show them the table and view currently being edited. delete. datos y organización). Perform a simple Customizing transaction. © 2009 SAP AG. Enter PB for plastic bags.

Set the column "Customer material no." invisible. a quantity and a price. in most of the training systems your settings won’t take effect because the profile parameter "dynpro/global_fields" is not set to "Yes" but has its default value "No". Set Company Code 1000. Show the table control "All items" where you changed the settings. which starts Transaction SHDG). Starting your demo with transaction VA01 you can also show SET-/GET-Parameter: then choose: • Order Type "CD" (Delivery free of Charge) • Sales organization 1000 • Distribution Channel 10 • Division 00 Now press green check. Now leave transaction VA01 and start TA VA21 (Create Quotation) or VA03 (Display Sales Order). Here you choose Application Components -> Financial Accounting.TAW12_2 Lección: Modificación de la versión estándar del sistema SAP Gráfico 5: Personalización Show how to make Global Field Settings Guide (Tools -> Accelerated SAP -> Personalization -> Global Field Values. Mark the sub-tree and activate. However. Choose "Change Global Fields" for Financial Accounting. Activate your settings. 10-07-2009 © 2009 SAP AG. Show how the administrator can make client-wide ("global") table control settings. Reservados todos los derechos. 7 . Choose the administrator functionality. Save your work. Sold-to-party and Ship-to-party should be 1000. You can change the table control now: Move some columns. Explain why the order number is already in the field. Now you can press the settings button. In the sales items you can insert material M-05.

Gráfico 6: Niveles de modificación mediante el Workbench ABAP Las modificaciones son cambios en los objetos SAP de los sistemas del cliente. Concretamente: • • Se ejecutan con ayuda de exits de usuario (subrutinas reservadas a los clientes en objetos del área de nombres de SAP). Los menús basados en roles. Los desarrollos de cliente son programas desarrollados por los clientes que pueden llamar objetos del Repository SAP. las transacciones de aplicación individuales se ajustan para cubrir las necesidades empresariales de la compañía en su conjunto o las necesidades de grupos de usuarios específicos dentro de la compañía. Ejemplo: Un cliente crea un programa que llama un módulo de funciones de SAP. Los atributos de visualización globales permiten definir valores predeterminados para campos de dynpro específicos. Todas las funciones y los datos innecesarios encontrados en la transacción se desactivan. También se pueden suprimir columnas de control de tabal o campos individuales de una transacción concreta o de toda la pantalla. los favoritos y los accesos rápidos del Escritorio permiten ajustar las secuencias de menús de modo que reflejen las necesidades de distintos grupos de usuarios en la empresa.Capítulo 1: Modificación de la versión estándar del sistema SAP TAW12_2 Personalización acelera y simplifica el procesamiento de los flujos de proceso procesados por el sistema R/3. 8 © 2009 SAP AG. Durante la personalización. En varios puntos de los objetos de Repository SAP son "de codificación fija". 10-07-2009 . Reservados todos los derechos.

Una estructura append es una estructura que está asignada exactamente a una tabla. mediante la inserción de una subscreen en un área especificada por SAP (exit de dynpro) En pantallas. Reservados todos los derechos. Puede haber varias estructuras append para una tabla. • • Estructuras append Includes del Customizing (“includes CI”) Ambas técnicas permiten adjuntar campos a una tabla sin tener que modificar la tabla propiamente dicha. mediante el procesamiento del código de cliente que hace referencia a un campo específico en la pantalla (exit de campo) En estructuras o tablas de Dictionary ABAP (ampliaciones de tabla) Gráfico 7: Ampliaciones de tabla SAP proporciona dos formas de añadir tablas y estructuras a campos. Puede ampliar el sistema en los niveles siguientes: • • • • • En programas ABAP (exits de módulo de funciones) En interfases GUI (exits de menú) En pantallas. Durante la activación. el sistema busca todas las estructuras append activas para la tabla en cuestión y las adjunta a la tabla. Ejemplo: Se usa un exit de módulo de funciones llamado por un programa SAP.TAW12_2 Lección: Modificación de la versión estándar del sistema SAP Los conceptos de ampliación incluyen la versión contraria de este principio: Los programas SAP llaman objetos del Repository que el cliente ha creado o modificado. 10-07-2009 © 2009 SAP AG. 9 .

la tabla hace referencia a la subestructura. los includes CI permiten usar la misma estructura en varias tablas. las ampliaciones de tabla que usan estructuras append no tienen que ser planificadas por desarrolladores SAP. La sentencia include debe existir ya en la estructura o en la tabla SAP. 10-07-2009 .INCLUDE..Capítulo 1: Modificación de la versión estándar del sistema SAP TAW12_2 Las estructuras append difieren de las estructuras include en el modo en que hacen referencia a las tablas. las ampliaciones de tabla que usan includes CI sí deben ser planificadas por desarrolladores SAP. debe añadir una línea ’“. Las estructuras append. En cambio. Gráfico 8: Ampliaciones de tabla: SAP y el cliente Las estructuras append permiten adjuntar campos a una tabla sin tener que modificar la tabla propiamente dicha. Por ello. 10 © 2009 SAP AG.. Para incluir campos de una estructura include en una tabla. En este caso. En este caso. No obstante. las tablas propiamente dichas no se modifican en modo alguno según la referencia. hacen referencia a las tablas. Reservados todos los derechos. en cambio.” a la tabla. Una estructura append sólo puede pertenecer exactamente a una tabla.

Puede utilizar las técnicas siguientes: • • • 10-07-2009 Exits de cliente: La aplicación SAP llama un módulo de funciones de exit especial. Add-ins empresariales: el programa de aplicación llama un método de una clase o una instancia de una clase. Esta clase se encuentra en el área de nombres de cliente. Reservados todos los derechos. 11 . © 2009 SAP AG. El módulo de funciones forma parte de un grupo de funciones gestionado de forma especial por el sistema. Eventos de operación: el programa de aplicación SAP llama dinámicamente un módulo de funciones en el área de nombres de cliente.TAW12_2 Lección: Modificación de la versión estándar del sistema SAP Gráfico 9: Ampliaciones del programa: Funcionamiento La finalidad de una ampliación de programa siempre es llamar un objeto en el área de nombres de cliente.

Reservados todos los derechos. En la actualidad. SAP proporciona las técnicas mencionadas. Gráfico 11: Ampliaciones de menú: SAP y el cliente 12 © 2009 SAP AG.Capítulo 1: Modificación de la versión estándar del sistema SAP TAW12_2 Gráfico 10: Ampliaciones del programa: SAP y el cliente Las ampliaciones de programa permiten ejecutar lógica de programa adicional para un programa de aplicación SAP. 10-07-2009 . Las ventajas y las restricciones de cada técnica de ampliación concreta se describen en detalle en otras unidades.

El sistema ofrece dos opciones en este caso: • • Exits de cliente Add-ins empresariales Las opciones de menú adicionales se fusionan en la interfase GUI. Puede implementar exits de dynpro creando subscreens. 10-07-2009 © 2009 SAP AG. Especificar las llamadas correspondientes en la lógica de proceso. se puede modificar el texto de la opción de menú y se pueden modificar los iconos si el desarrollador SAP lo ha especificado así.20. A partir de SAP Web Application Server 6. También hay que implementar el transporte de datos. mediante la lógica de proceso.TAW12_2 Lección: Modificación de la versión estándar del sistema SAP Las ampliaciones de menú permiten añadir entradas adicionales a un menú estándar de SAP. El desarrollador SAP debe: • • • • • Definir las áreas subscreen. 13 . Incluir el exit de dynpro en una ampliación. Actualizar la documentación. Cuando se implementa el código de función. Permiten visualizar objetos adicionales en una pantalla del programa de aplicación de SAP. Reservados todos los derechos. Proporcionar el framework para transportar los datos. Gráfico 12: Ampliaciones de pantalla Los exits de dynpro son un tipo de exit de cliente. los add-ins empresariales también pueden contener exits de dynpro. por ejemplo.

14 © 2009 SAP AG. como veremos en la unidad “Modificaciones”. En la unidad "Modificaciones" también se explica cómo reconciliar las modificaciones. se ha usado una granularidad más precisa para registrar modificaciones. Antes del release 4. se debe decidir si se debe usar el nuevo objeto o si se desea seguir usando el objeto anterior. Reservados todos los derechos. Las modificaciones pueden provocar complicaciones durante el siguiente upgrade del sistema. En la unidad “Add-ins empresariales” se explica cómo implementar estos exits para exits de dynpro nuevos.0B.5A. A partir del release 4. Esto ha sido posible gracias al Asistente de modificaciones. un programa include). También se ha revisado el proceso de ajuste de las modificaciones. 10-07-2009 .Capítulo 1: Modificación de la versión estándar del sistema SAP TAW12_2 En la unidad “Ampliaciones con exits de cliente” se describe cómo implementar exits de dynpro para exits de dynpro “tradicionales”. Cuando SAP suministra una nueva versión del objeto. las modificaciones sólo se registraban en el nivel de objeto del Repository (por ejemplo. Gráfico 13: Modificaciones Cualquier cambio que realice en un objeto de su sistema suministrado por SAP se denomina modificación.

También puede utilizar sus propias preguntas.TAW12_2 Lección: Modificación de la versión estándar del sistema SAP Discusión con moderador - Preguntas para la discusión Utilice las siguientes preguntas para que los participantes del curso tomen parte en la discusión. - 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. 15 .

Capítulo 1: Modificación de la versión estándar del sistema SAP TAW12_2 Resumen de la lección Ahora podrá: • Describir los distintos niveles en los que se pueden realizar modificaciones en la versión estándar que suministra SAP. 10-07-2009 . • Enumerar los tipos de ampliación disponibles y explicar sus usos. Reservados todos los derechos. 16 © 2009 SAP AG. • Elegir el método más adecuado para modificar el sistema estándar.

Reservados todos los derechos. 17 . • Elegir el método más adecuado para modificar el sistema estándar.TAW12_2 Resumen del capítulo Resumen del capítulo Ahora podrá: • Describir los distintos niveles en los que se pueden realizar modificaciones en la versión estándar que suministra SAP. 10-07-2009 © 2009 SAP AG. • Enumerar los tipos de ampliación disponibles y explicar sus usos.

Reservados todos los derechos. 10-07-2009 .Resumen del capítulo 18 TAW12_2 © 2009 SAP AG.

................. Ampliar tablas mediante includes del Customizing............. Reservados todos los derechos.......................... Sobrescribir etiquetas de campo y documentación para elementos de datos de SAP sin realizar modificaciones Contenido del capítulo Lección: Ampliaciones de tabla ........ 19 ...... 27 Lección: Ampliaciones de texto ....................... 30 10-07-2009 © 2009 SAP AG.................. 20 Ejercicio 1: Ampliaciones de tabla .Capítulo 2 Ampliación de los elementos del Dictionary 17 Resumen del capítulo • • • Estructuras append Includes del Customizing Ampliaciones de texto Objetivos del capítulo Al finalizar este capítulo podrá: • • • Ampliar tablas mediante estructuras append.............................

- Ejemplo empresarial Desea que las tablas SAP contengan más campos. Ampliar tablas mediante includes del Customizing.Capítulo 2: Ampliación de los elementos del Dictionary Lección: 18 TAW12_2 Ampliaciones de tabla Duración de la lección: 20 Minutos Resumen de la lección En esta lección se demuestra cómo se pueden usar estructuras append e includes del Customizing elaborados por SAP para insertar campos de cliente adicionales en estructuras de tabla SAP. 10-07-2009 . pero no quiere tener que implementar modificaciones. 20 © 2009 SAP AG. Reservados todos los derechos. Objetivos de la lección Al finalizar esta lección podrá: • • Ampliar tablas mediante estructuras append.

21 . Sin embargo. una tabla puede tener asignadas diversas estructuras append. Puede contener código fuente o exits de dynpro facilitados por SAP para procesar o visualizar los campos. – Se pueden usar del mismo modo que las estructuras normales en programas. los clientes pueden añadir sus propios campos a la tabla o estructura que deseen. 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: Ampliaciones de tabla Ampliaciones de tabla Gráfico 14: Ampliaciones del Dictionary ABAP: Diagrama general del curso • Estructura append – • Los clientes pueden crear una estructura append para una tabla SAP (sin preparación por parte de SAP). Con las estructuras append. Include del Customizing – – – Ya integrado en las tablas SAP por SAP. El cliente lo completa con los campos adicionales que desee. Las estructuras append se crean para utilizarse con una tabla específica. – Se puede usar varias estructuras append con una sola tabla SAP. Las tablas y las estructuras se pueden ampliar de una de estas dos formas: Las estructuras append permiten ampliar las tablas añadiendo campos que no forman parte de la versión estándar del sistema. Reservados todos los derechos.

De este modo se garantiza la coherencia en estas tablas y estructuras aunque se amplíe el include. Los campos en estructuras append de programas ABAP se pueden usar como cualquier otro campo en la tabla. los campos de la estructura append pasarán a ser campos normales de la tabla de destino. Una estructura append es una estructura que está asignada exactamente a una tabla. la tabla a la que esté asignada también se activará. 22 © 2009 SAP AG. Cada vez que se activa una tabla. El mismo include del Customizing se puede usar en múltiples tablas o estructuras. y las modificaciones se reflejarán en ella cuando se active. Gráfico 15: Estructuras append Las estructuras append permiten adjuntar campos a una tabla sin tener que modificar la tabla propiamente dicha. Puede haber varias estructuras append para una tabla. Consejo: Si copia una tabla a la que se ha añadido una estructura append. 10-07-2009 . Si se crea o se modifica una estructura append. Reservados todos los derechos.Capítulo 2: Ampliación de los elementos del Dictionary TAW12_2 Si se sabe de antemano que es necesario añadir campos específicos de cliente a una de las tablas o estructuras proporcionadas por SAP. el sistema busca todas las estructuras append activas para la tabla en cuestión y las adjunta a la tabla. No se producen errores por includes de Customizing inexistentes. el desarrollador SAP incluirá estos campos en la tabla mediante una sentencia de include de Customizing.

Esto se debe a que los campos largos deben estar siempre en la última posición de la lista de campos. deben ser el último campo de la tabla. De este modo se evita que se sobrescriban durante los upgrades o los cambios de release. Si usa una estructura append para ampliar una tabla SAP. Después de ellos no se pueden añadir campos de una estructura append. Reservados todos los derechos. 23 . Durante los upgrades se cargan nuevas versiones de las tablas estándar. es decir. Los campos incluidos en estructuras append activas se añaden entonces a las nuevas tablas estándar cuando se activan por primera vez. La estructura se ajusta cuando se ajusta el catálogo de la base de datos (ALTER TABLE). De este modo se evita que haya conflictos de nombres con los nuevos campos insertados por SAP en la tabla estándar. © 2009 SAP AG. Si hay un campo largo (tipo de datos LCHR o LRAW) en una tabla. y el nuevo campo se añade a la tabla de base de datos. no se puede ampliar con estructuras append. es decir. Puesto que el orden de los campos en el Dictionary ABAP puede ser diferente del orden en la base de datos a partir del release 3.0.TAW12_2 Lección: Ampliaciones de tabla Gráfico 16: Estructuras append en el momento del upgrade Las estructuras append se crean en el área de nombres de cliente. la definición de la tabla se modifica. Cuando se activa en el Dictionary ABAP. no hace falta realizar ninguna conversión cuando se añade una estructura append o se insertan campos en una estructura append existente. Consejo: Tenga en cuenta los puntos siguientes sobre estructuras append: • • • 10-07-2009 No se pueden crear estructuras append para tablas pool ni tablas cluster. los nombres de campo de la estructura append deberían estar en el área de nombres de cliente. deberían empezar por YY o ZZ.

Reservados todos los derechos.Capítulo 2: Ampliación de los elementos del Dictionary TAW12_2 Create an append structure for table SFLIGHT00 that will be filled with data later. Show your students table AUFK. Activate your append structure. When you double-click CI_AUFK. Los includes del Customizing están incluidos en el área de nombres del cliente. 24 © 2009 SAP AG. A diferencia de las estructuras append. y sus nombres empiezan por “CI_”. Create another field with a name not starting with ZZ or YY. A menudo. los includes del Customizing se pueden insertar en más de una tabla. Esta convención para fijar nombres garantiza que no se producirán errores por includes de Customizing inexistentes. Scroll down and show them the Customizing include CI_AUFK. se insertan en tablas estándar a las que es necesario añadir campos específicos del cliente. Create it and activate it. Show the where-used list for CI_AUFK to your students. De este modo se garantiza la coherencia de los datos en todas las tablas y estructuras aunque se modifique el include. Create a field named ZZMEAL that refers to data element S_MEAL. Con la versión estándar del sistema R/3 no se suministra código fuente para includes de Customizing. Execute a syntax check. 10-07-2009 . you will see that the include structure does not exist yet. Emphasize that the database table does not recognize the append structure: For the database it is just one table. Gráfico 17: Includes del Customizing Algunas de las tablas y estructuras proporcionadas con la versión estándar de R/3 contienen sentencias include especiales: Es lo que se conoce como includes del Customizing.

10-07-2009 © 2009 SAP AG. Los nombres de campo de los include del Customizing deben estar dentro del área de nombres del cliente. respete las normas aplicables a las estructuras append. Algunas de ellas forman parte de ampliaciones de SAP y se pueden crear mediante la gestión de proyectos (véase la unidad “Ampliaciones con exits de cliente”). Estos nombres deben empezar por “YY” o “ZZ”. Reservados todos los derechos.TAW12_2 Lección: Ampliaciones de tabla Los includes de Customizing se crean mediante transacciones especiales del Customizing. 25 . como los nombres de campo de las estructuras append. Cuando añada los campos de un include del Customizing a la base de datos.

Reservados todos los derechos. TAW12_2 10-07-2009 .Capítulo 2: Ampliación de los elementos del Dictionary 26 © 2009 SAP AG.

La estructura debe incluir los siguientes elementos: Nombre del piloto (asignación de tipo con el elemento de datos S_PILNAME) Menú (asignación de tipo con el elemento de datos S_MEAL) 10-07-2009 © 2009 SAP AG. Los datos de vuelo se guardan en la tabla SFLIGHT##. Debe añadir dos columnas a esta tabla sin modificarla. Ejemplo empresarial Usted trabaja como técnico informático para una agencia de viajes de gran tamaño.TAW12_2 23 Lección: Ampliaciones de tabla Ejercicio 1: Ampliaciones de tabla Duración del ejercicio: 20 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Ampliar tablas con estructuras append. Reservados todos los derechos. Amplíe la tabla SFLIGHT## mediante una técnica que no requiera modificaciones. por ejemplo. Tarea 1: ¿Cómo puede añadir estos dos campos a la tabla SFLIGHT## sin modificarla? 1. 1. 27 . sus compañeros usan la transacción BC425_## para mostrar la información sobre los vuelos a los clientes. ¿Cómo puede ampliar la tabla SFLIGHT##? 2. Entre otras cosas. Querrían tener más información sobre un vuelo. el nombre del piloto o el menú principal. Tarea 2: Crear una estructura append para la tabla SFLIGHT##.

los detalles se visualizarán en el log de activación. 10-07-2009 . YYPILOT e YYMEAL. Por ejemplo. Reservados todos los derechos. Acepte el nombre que propone el sistema. a) El procedimiento se describe en detalle en las soluciones de la tarea siguiente. Active la estructura append.Capítulo 2: Ampliación de los elementos del Dictionary TAW12_2 Solución 1: Ampliaciones de tabla Tarea 1: ¿Cómo puede añadir estos dos campos a la tabla SFLIGHT## sin modificarla? 1. Introduzca una descripción breve de la estructura append y grábela en el paquete que ha creado. 1. Tarea 2: Crear una estructura append para la tabla SFLIGHT##. ya que no contiene includes del Customizing. ¿Cómo puede ampliar la tabla SFLIGHT##? a) 2. 28 © 2009 SAP AG. El único método posible para ampliar la tabla transparente SFLIGHT## es utilizar una estructura append. Amplíe la tabla SFLIGHT## mediante una técnica que no requiera modificaciones. La estructura debe incluir los siguientes elementos: Nombre del piloto (asignación de tipo con el elemento de datos S_PILNAME) Menú (asignación de tipo con el elemento de datos S_MEAL) a) Cree su estructura append mediante la opción de menú Pasar a → Estructuras append… o el pulsador correspondiente. b) La estructura debe incluir dos campos: Los nombres de los campos deban empezar por ZZ o YY. Si se produce un error.

TAW12_2 Lección: Ampliaciones de tabla Resumen de la lección Ahora podrá: • Ampliar tablas mediante estructuras append. Reservados todos los derechos. 29 . 10-07-2009 © 2009 SAP AG. • Ampliar tablas mediante includes del Customizing.

Estos textos específicos de cliente se visualizan luego en pantallas e imágenes de selección en lugar del texto proporcionado por SAP. Reservados todos los derechos. 10-07-2009 .Capítulo 2: Ampliación de los elementos del Dictionary Lección: 26 TAW12_2 Ampliaciones de texto Duración de la lección: 30 Minutos Resumen de la lección En esta lección se explica cómo sobrescribir textos suministrados con elementos de datos de SAP con textos específicos de cliente. Objetivos de la lección Al finalizar esta lección podrá: • Sobrescribir etiquetas de campo y documentación para elementos de datos de SAP sin realizar modificaciones - Ejemplo empresarial Le gustaría sobrescribir etiquetas de campo y documentación para elementos de datos de SAP con textos específicos del cliente. 30 © 2009 SAP AG.

se trata de ampliaciones globales). Gráfico 19: Sobrescritura de etiquetas de campo de SAP (1) 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: Ampliaciones de texto Ampliaciones de texto Gráfico 18: Ampliaciones de texto: Resumen Las ampliaciones de texto abarcan etiquetas de campo específicas de cliente y documentación para elementos de datos de SAP. Funcionan en todas las aplicaciones de SAP que usan el elemento de datos en cuestión (es decir. 31 . Reservados todos los derechos.

An example for that is the data element PROGRAMM. You can also change the field label of a text with attribute "F". (Seleccione Workbench ABAP → Utilidades → Ampliaciones → Gestión de proyectos) (o introduzca la transacción CMOD). De este modo se pueden proporcionar etiquetas de campo nuevas para todos los campos de dynpro. that is. Gráfico 20: Sobrescritura de etiquetas de campo de SAP (2) Las ampliaciones de texto se editan con la gestión de proyectos. Change the field labels (keywords) for one data element that is used in transaction VA01. Seleccione “ Pasar a → Ampliaciones globales ” para abrir la ampliación de etiquetas de campo y documentación (sobrescritura) para elementos de datos de SAP. for example VKORG. 10-07-2009 .Capítulo 2: Ampliación de los elementos del Dictionary TAW12_2 Los programadores de aplicaciones de SAP definen etiquetas de campo de distintas longitudes e introducen una descripción brece de cada elemento de datos. no changes will be accepted. Los clientes pueden sobrescribir estos textos con textos propios. which is used in transaction SE38 and SA38. Show your students the results in transactions VA01. Reservados todos los derechos. 32 © 2009 SAP AG.

© 2009 SAP AG. modificado” tiene el valor “F”. El atributo “Dict. Reservados todos los derechos. 33 . En estos casos. modificado” puede tener los valores siguientes: • • • • • • • 10-07-2009 ESPACIO: La etiqueta de campo que encaje mejor en la longitud del campo 1: Etiqueta de campo corta 2: Etiqueta de campo media 3: Etiqueta de campo larga 4: Etiqueta de campo para cabecera V: Transferencia de texto de variable desde el Dictionary (como ESPACIO): F: Fijo: no hay transferencia de texto desde el Dictionary. el atributo de campo de dynpro “Dict.TAW12_2 Lección: Ampliaciones de texto Gráfico 21: Requisitos previos para sobrescribir una etiqueta de campo de SAP Sólo se pueden sobrescribir las etiquetas de campos de dynpro a los que el desarrollador del dynpro no haya asignado explícitamente un texto descriptivo.

Si desea conservar sus propias etiquetas de campo del release anterior. como los elementos de datos BUKRS. 10-07-2009 . se recomienda iniciar el restablecimiento cuando el contenido de las tablas que usen BUKRS y MANDT no esté siendo modificado. En el caso de las etiquetas de campos centrales. SAP recomienda restablecer siempre las etiquetas de campo después de realizar un upgrade de release.Capítulo 2: Ampliación de los elementos del Dictionary TAW12_2 Gráfico 22: Textos sobrescritos durante upgrades Si SAP vuelve a entregar etiquetas de campo existentes. Las etiquetas de campo se restablecen mediante un programa que se ejecuta en proceso de fondo. seleccione la opción de menú que restablece las etiquetas de campo de cliente. la activación del elemento de datos podría fallar y el status pasaría a ser el de sólo parcialmente activo. En caso contrario. 34 © 2009 SAP AG. Reservados todos los derechos. Este programa verifica todos los elementos de datos editados y restablece sus etiquetas de campo en caso necesario. tendrá que restablecer sus etiquetas de campo de cliente después de un upgrade de release o después de importar nuevas correcciones. MANDT y otros.

como los elementos de datos BUKRS. Reservados todos los derechos. 10-07-2009 © 2009 SAP AG. MANDT y otros. Las etiquetas de campo se restablecen mediante un programa que se ejecuta en proceso de fondo. En el caso de las etiquetas de campos centrales. Este programa verifica todos los elementos de datos editados y restablece sus etiquetas de campo en caso necesario.TAW12_2 Lección: Ampliaciones de texto Gráfico 23: Restablecimiento de etiquetas de campo de SAP Para deshacer las modificaciones en etiquetas de campos. se recomienda iniciar el restablecimiento cuando el contenido de las tablas que usen BUKRS y MANDT no esté siendo modificado. seleccione la opción de menú para restablecer las etiquetas de campo de SAP. 35 .

Reservados todos los derechos. para ello. seleccione las líneas correspondientes en la lista. se puede copiar la documentación de SAP como propia. Se puede generar una lista de los elementos de datos modificados y editar la documentación de cliente relevante. En este caso. Sólo tendrá que borrar la documentación propia si desea que se visualice la documentación original de SAP. el sistema visualizará la documentación de SAP y la documentación específica del cliente.Capítulo 2: Ampliación de los elementos del Dictionary TAW12_2 Gráfico 24: Documentación ampliada para elementos de datos Cuando se amplía la documentación del elemento de datos. 10-07-2009 . cuando seleccione F1 para el campo de dynpro correspondiente. 36 © 2009 SAP AG.

Seleccione la segunda opción si desea crear documentación específica de cliente sin incluir la documentación original de SAP. Reservados todos los derechos. 10-07-2009 © 2009 SAP AG. Seleccione la primera opción si desea añadir datos a la documentación de SAP. 37 .TAW12_2 Lección: Ampliaciones de texto Gráfico 25: Creación de documentación de cliente El acceso vía menús descrito en el gráfico anterior abre una ventana de diálogo en la que se debe elegir “Texto original” o “Modelo”.

También puede utilizar sus propias preguntas. 10-07-2009 . Reservados todos los derechos.Capítulo 2: Ampliación de los elementos del Dictionary TAW12_2 Discusión con moderador - Preguntas para la discusión Utilice las siguientes preguntas para que los participantes del curso tomen parte en la discusión. - 38 © 2009 SAP AG.

39 . Reservados todos los derechos.TAW12_2 Lección: Ampliaciones de texto Resumen de la lección Ahora podrá: • Sobrescribir etiquetas de campo y documentación para elementos de datos de SAP sin realizar modificaciones 10-07-2009 © 2009 SAP AG.

• Sobrescribir etiquetas de campo y documentación para elementos de datos de SAP sin realizar modificaciones 40 © 2009 SAP AG. • Ampliar tablas mediante includes del Customizing. Reservados todos los derechos.Resumen del capítulo TAW12_2 Resumen del capítulo Ahora podrá: • Ampliar tablas mediante estructuras append. 10-07-2009 .

de menú y de dynpro creados mediante técnicas de exit de cliente. • • • • Objetivos del capítulo Al finalizar este capítulo podrá: • • 10-07-2009 Explicar cómo están organizados los exits de cliente y los principios básicos de su utilización En esta lección se explican los aspectos fundamentales de un proyecto de ampliación que se debe usar para implementar exits de cliente existentes. las ampliaciones y los proyectos de ampliación. Explicar qué son los componentes. Explicar cómo añadir proyectos de ampliación a órdenes de modificación. Reservados todos los derechos.Capítulo 3 Ampliaciones mediante exits de cliente 35 Resumen del capítulo • • • • • Introducción Gestión de ampliaciones Exits de módulo de funciones Exits de menú Exits de dynpro • Usar exits de programa. Transportar proyectos de ampliación. © 2009 SAP AG. Crear proyectos de ampliación y tratar ampliaciones y sus componentes. 41 .

... 10-07-2009 ....................... Explicar cómo funcionan los exits de menú implementados mediante exits de cliente............. Reservados todos los derechos................................................. 67 Lección: Exit de menú..... Contenido del capítulo Lección: Exits de cliente: Resumen ................. 79 Ejercicio 4: Exit de dynpro ........ 75 Lección: Exit de dynpro ........................ Desea buscar y usar exits de dynpro implementados mediante exits de cliente.............. Buscar y usar estos exits de menú........................ 43 Lección: Gestión de ampliaciones.................................................................. 89 42 © 2009 SAP AG......Capítulo 3: Ampliaciones mediante exits de cliente • • • • TAW12_2 Buscar exits de programa implementados mediante exits de cliente y usarlos para ampliar las funciones........... 56 Ejercicio 2: Exit de programa ........................................................................... 48 Lección: Exit de programa................................................. 71 Ejercicio 3: Exit de menú ........................

43 . Objetivos de la lección Al finalizar esta lección podrá: • Explicar cómo están organizados los exits de cliente y los principios básicos de su utilización - Ejemplo empresarial Desea ver un resumen de los usos de sus exits de cliente. Exits de cliente (resumen) Gráfico 26: Ampliaciones de aplicación de SAP 10-07-2009 © 2009 SAP AG. Reservados todos los derechos.TAW12_2 Lección: 37 Lección: Exits de cliente: Resumen Exits de cliente: Resumen Duración de la lección: 10 Minutos Resumen de la lección En esta lección se ofrece una visión de conjunto de los exits de cliente.

Reservados todos los derechos.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Las ampliaciones de aplicación permiten a los clientes añadir funciones de aplicación. Como cliente. Los clientes cuentan con una lista de las ampliaciones de SAP existentes y pueden agrupar las ampliaciones deseadas en un proyecto de ampliación mediante una función de gestión separada (transacción CMOD). La ampliación de aplicación cuenta con las características siguientes: • • • • Cada ampliación proporciona un conjunto de funciones definidas con precisión y planificadas previamente. 10-07-2009 . No hace falta ajustar las ampliaciones tras un upgrade debido a nuevas funciones desarrolladas por SAP. Gráfico 27: Proyecto de ampliación del cliente Los programadores de SAP crean ampliaciones de SAP a partir de exits de programa. Para este fin hay disponible una función de gestión (código de transacción SMOD). SAP planifica previamente los exits de cliente. Cada interfase entre las funciones del cliente y SAP está definida con claridad. Las ampliaciones de aplicación no están activas cuando se entregan. exits de menú y exits de dynpro. que generalmente están compuestos por varios componentes. 44 © 2009 SAP AG. y los clientes pueden completarlas y activarlas a medida que las necesiten. no hace falta que sepa cómo implementar aplicaciones de SAP.

45 . Estos componentes incluyen exits de programa. Create an enhancement project and record your actions using the Workbench Organizer. Reservados todos los derechos. exits de menú y exits de dynpro. 10-07-2009 © 2009 SAP AG. Cada ampliación de SAP se puede usar sólo una vez en todos los proyectos de ampliación de cliente (de este modo se garantiza que un proyecto de cliente es exclusivo).TAW12_2 Lección: Exits de cliente: Resumen Gráfico 28: Ampliaciones y proyectos de ampliación Las ampliaciones de SAP están integradas por componentes. Un componente específico sólo se puede usar una vez en todas las ampliaciones de SAP (de este modo se garantiza que las ampliaciones de SAP son exclusivas). Los proyectos de ampliación de cliente están formados por ampliaciones de SAP.

Reservados todos los derechos. - 46 © 2009 SAP AG. 10-07-2009 . También puede utilizar sus propias preguntas.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Discusión con moderador - Preguntas para la discusión Utilice las siguientes preguntas para que los participantes del curso tomen parte en la discusión.

TAW12_2 Lección: Exits de cliente: Resumen Resumen de la lección Ahora podrá: • Explicar cómo están organizados los exits de cliente y los principios básicos de su utilización 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. 47 .

Objetivos de la lección Al finalizar esta lección podrá: • En esta lección se explican los aspectos fundamentales de un proyecto de ampliación que se debe usar para implementar exits de cliente existentes.Capítulo 3: Ampliaciones mediante exits de cliente Lección: 41 TAW12_2 Gestión de ampliaciones Duración de la lección: 20 Minutos Resumen de la lección En esta lección se explican los aspectos fundamentales de un proyecto de ampliación que se debe usar para implementar exits de cliente existentes. Reservados todos los derechos. 10-07-2009 . - Ejemplo empresarial Desea conocer el principio de proyecto de ampliación en el entorno de exit de cliente. Proyecto de ampliación: principios fundamentales Gráfico 29: Procedimiento de creación de ampliación de SAP 48 © 2009 SAP AG.

edite los componentes individuales mediante la función de gestión de proyecto y documente todo el proyecto de ampliación. Estos componentes se agrupan en ampliaciones de SAP. El programador documenta las ampliaciones de modo que los clientes puedan implementar las ampliaciones sin tener que analizar el código fuente del programa o el dynpro.TAW12_2 Lección: Gestión de ampliaciones El programador de SAP planifica las posibles ampliaciones de aplicación en una aplicación y define los componentes necesarios. active el proyecto de ampliación (de este modo se activarán todos los componentes del proyecto). 10-07-2009 © 2009 SAP AG. cree un proyecto de ampliación y luego elija las ampliaciones de SAP que desee usar. 49 . Reservados todos los derechos. Gráfico 30: Procedimiento en la sede del cliente En primer lugar. A continuación. Finalmente.

Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Gráfico 31: Creación de un proyecto de ampliación del cliente La transacción CMOD inicia la función de gestión de proyecto. puede incluir el nombre de la transacción o el modulpool en el nombre del proyecto. vaya a los atributos del proyecto e introduzca un texto breve para el proyecto de ampliación. El sistema introduce los demás atributos (sello con el nombre y cronomarcador para creación y modificación. Introduzca un nombre para el proyecto de ampliación. 10-07-2009 . 50 © 2009 SAP AG. SAP recomienda utilizar una convención para fijar nombres para los proyectos. Por ejemplo. El nombre del proyecto identifica de forma exclusiva la ampliación en el sistema. A continuación. y status). Reservados todos los derechos.

Reservados todos los derechos.TAW12_2 Lección: Gestión de ampliaciones Gráfico 32: Asignación de ampliaciones de SAP a un proyecto de cliente Use la función de gestión de proyecto para asignar ampliaciones de SAP a proyectos de ampliación del cliente. Gráfico 33: Edición de componentes 10-07-2009 © 2009 SAP AG. En ella puede seleccionar las ampliaciones que le interesen. La función de búsqueda visualiza una lista de ampliaciones de SAP existentes. Introduzca los nombres de las ampliaciones de SAP que desea utilizar en la pantalla adecuada. 51 .

Cuando se activa el proyecto. afecta a todos los componentes. pasará al Function Builder a una ventana de diálogo para introducir opciones de menú o a un Screen Painter. las ampliaciones se pueden ver en las funciones de la aplicación. Gráfico 34: Activación de proyectos de ampliación Cuando se activa un proyecto de ampliación. Puede usar la función Desactivar para reiniciar el status de un proyecto de ampliación activo a inactivo. Reservados todos los derechos. una opción de menú o una subscreen.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Use la función de gestión de proyecto para editar los componentes del proyecto de ampliación. 10-07-2009 . En función de si el componente que está editando es un módulo de funciones. tendrá el status activo. Gráfico 35: Transporte de proyectos 52 © 2009 SAP AG. todos los programas. Después de haber activado con éxito el proyecto. pantallas e interfases de menú que contengan componentes pertenecientes al proyecto también se volverán a generar (los programas no se regeneran hasta que se inician). Después de la activación.

TAW12_2 Lección: Gestión de ampliaciones Para garantizar que el proyecto de ampliación se transporte con coherencia. subscreens e includes con modulpools de subscreen) a una o varias tareas como parte de una única solicitud de modificación. 10-07-2009 © 2009 SAP AG. 53 . Reservados todos los derechos. asigne el proyecto de ampliación propiamente dicho y todos sus componentes (programas de include.

Reservados todos los derechos. - 54 © 2009 SAP AG.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Discusión con moderador - Preguntas para la discusión Utilice las siguientes preguntas para que los participantes del curso tomen parte en la discusión. 10-07-2009 . También puede utilizar sus propias preguntas.

55 . 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: Gestión de ampliaciones Resumen de la lección Ahora podrá: • En esta lección se explican los aspectos fundamentales de un proyecto de ampliación que se debe usar para implementar exits de cliente existentes. Reservados todos los derechos.

- Ejemplo empresarial Desea buscar exits de programa implementados mediante exits de cliente y usarlos para ampliar las funciones. Exits de cliente: Exit de programa Gráfico 36: Resumen del exit de programa 56 © 2009 SAP AG.Capítulo 3: Ampliaciones mediante exits de cliente Lección: 48 TAW12_2 Exit de programa Duración de la lección: 40 Minutos Resumen de la lección En esta lección se explica cómo funciona un exit de programa implementado mediante un exit de cliente y se enumeran los usos posibles. Objetivos de la lección Al finalizar esta lección podrá: • Buscar exits de programa implementados mediante exits de cliente y usarlos para ampliar las funciones. Reservados todos los derechos. 10-07-2009 .

los usuarios pueden añadir una función al área de nombres de cliente mediante un include. Los programadores de SAP crean además los módulos de funciones correspondientes. Reservados todos los derechos. 57 . 10-07-2009 © 2009 SAP AG. elementos de texto e includes propios para el grupo de funciones.TAW12_2 Lección: Exit de programa Los exits de programa permiten a los clientes implementar lógica adicional en funciones adicionales. una interfase y la documentación. cree pantallas. Los programadores de SAP definen el lugar en el que se insertan los exits de módulo de programa y qué tipo de datos transfieren. En caso necesario. acompañados de un texto breve. El módulo de funciones de exit es llamado en un punto del texto fuente definido por el desarrollador SAP. El código fuente de los módulos de funciones los escribe el usuario. Dentro del módulo de funciones. Antes. El sistema sólo procesa el código ABAP cuando se activa el proyecto de ampliación (del cual forma parte su módulo de funciones). y describen las funciones asignadas a un exit de programa en la documentación de SAP. los exits de programa no tendrán efecto alguno. Gráfico 37: Exit de programa: Arquitectura En este gráfico se muestra el flujo de un programa que proporciona una ampliación en forma de exit de programa.

Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Gráfico 38: Exit de programa: Sintaxis El programador de SAP define la llamada del módulo de funciones mediante la sentencia ABAP CALL CUSTOMER-FUNCTION “nnn”. La sentencia CALL CUSTOMER-FUNCTION sólo se ejecuta tras haber activado el proyecto de ampliación. La siguiente convención para fijar nombres se aplica a los módulos de funciones: • • • • Prefijo: EXIT Nombre: Nombre del programa que llama el módulo de funciones Sufijo: Número de tres dígitos Las tres partes del nombre están separadas por un carácter de subrayado. 10-07-2009 . “nnn” representa un número de tres dígitos. Si se llama varias veces el mismo módulo de funciones. Reservados todos los derechos. Estos módulos de funciones siempre pertenecen a grupos de funciones cuyos nombres empiezan por X (grupo de funciones X). El programador de SAP crea también el grupo de funciones y el módulo de funciones correspondientes. 58 © 2009 SAP AG. la activación será válida para todas las llamadas.

TAW12_2 Lección: Exit de programa Gráfico 39: Búsqueda de exits de programa ¿Cómo se puede saber si un programa de aplicación contiene un exit de programa? Se trata de una cuestión clave para todo tipo de ampliaciones. En nuestro ejemplo. Puede delimitar la búsqueda en el Sistema de Información del Repository ABAP según distintos criterios: Estos son: • • 10-07-2009 Paquete (pruebe también con entradas genéricas) Nombre técnico de la ampliación © 2009 SAP AG. Realice la búsqueda globalmente en el programa. En el lado derecho del gráfico se muestran las herramientas que se pueden usar para buscar el nombre de la ampliación necesaria. puede definir un área de búsqueda mayor: Determine el entorno para el programa correspondiente y busque el string de caracteres específico en el entorno del programa. Reservados todos los derechos. Si la búsqueda no obtiene resultados. un string de caracteres adecuado sería “CALL CUSTOMER”. Hay varias formas de averiguarlo. Seleccione Sistema → Status para ver el nombre del programa de aplicación. 59 . Para saber con rapidez si un programa de aplicación ofrece un exit de módulo de funciones. puede usar la opción que se muestra en el lado izquierdo del gráfico: Navegue por el programa tal y como se ha descrito anteriormente hasta encontrar un string de caracteres determinado.

Go back to the enhancement project. Run transaction BC425_00 to show how the enhancement works. 60 © 2009 SAP AG. In this case. 10-07-2009 . Reservados todos los derechos. Haga doble clic en el nombre del include. Automáticamente pasará al editor del programa include. Again. Use la función de gestión de proyectos (transacción CMOD) para editar un módulo de funciones para un exit de programa.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Gráfico 40: Edición de exits de programa Show your students a simple transaction. Identify the need for a customer enhancement. Seleccione el pulsador de edición de componentes para ir directamente al editor de módulos de funciones (modo de visualización). donde podrá introducir su código fuente. Edit your component. Assign the enhancement SBC00E01 to your project. Show how to find the corresponding enhancement in the Repository Information System. Activate your project. BC425_00. en especial la interfase. which you created before. for example. No modifique el módulo de funciones propiamente dicho. you want to send an information message. Outline the motives behind your demonstration: You want to check whether the user has chosen "AA" and "0017". Sin embargo. emphasize that the interface of the function module is defined by the SAP developer and cannot be changed. el módulo de funciones contiene una sentencia INCLUDE para un programa include que se debe crear en el área de nombres de cliente. Explain in detail the concept of the function module exit.

Algunos de los nombres de include son simples propuestas y otros no se pueden modificar. 61 . subrutinas. Reservados todos los derechos. módulos y eventos). Puede elegir libremente los nombres de los includes para todos los demás objetos (por ejemplo. Los datos globales se guardan en el include TOP. Sin embargo. Los módulos de funciones se guardan en includes numerados secuencialmente y guardados a su vez en un include cuyo nombre acabe en UXX. debe entender cómo se estructura un grupo normal de funciones: • • • • 10-07-2009 Un grupo de funciones está formado por includes.TAW12_2 Lección: Exit de programa Gráfico 41: Estructura de un grupo de funciones Para saber cómo funciona un grupo de funciones X. Este include se genera automáticamente cuando se crea un grupo de funciones. se recomienda aceptar los nombres propuestos. El sistema asigna nombres exclusivos a los includes de distintos objetos. © 2009 SAP AG.

10-07-2009 . Gráfico 43: Datos globales de un grupo de funciones de exit Los programadores de SAP pueden declarar datos globales en el include LXaaaTAP. 62 © 2009 SAP AG.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Gráfico 42: Estructura de un grupo de funciones de exit Los grupos de funciones de exit creados por programadores de SAP contienen includes que empiezan por “LX” o “ZX”. No se pueden añadir más módulos de funciones al grupo de funciones. que son los que están guardados en el área de nombres de cliente. El programa de Include ZXaaaUnn contiene el código fuente para el módulo de funciones. Reservados todos los derechos. Sólo puede editar los includes que empiecen por Z.

un proceso que se describe más adelante. no se permiten eventos. En tal caso. El desarrollador documenta este include en la ampliación de SAP. Por ello. se creará un include LXaaFnn (siendo nn el número interno del módulo de funciones en el include LXaaaUXX). 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: Exit de programa Puede declarar sus datos globales en el include ZXaaaTOP.ENDFUNCTION. incluya siempre la clase de mensaje entre paréntesis cuando se visualicen mensajes: por ejemplo. Reservados todos los derechos. El include LXaaaTOP contiene la sentencia FUNCTION-POOL. Puede copiar el código fuente de este include en su programa de include de cliente ZXaaaUnn mediante la transacción de gestión de proyectos. En consecuencia. MESSAGE E500(EU). Gráfico 44: Bloques de procesamiento específicos de cliente La sentencia INCLUDE del programa ZXaaaUnn está incluida en un bloque FUNCTION . Las declaraciones de datos realizadas aquí con DATA son válidas localmente en este módulo de funciones. Hay que crearlos en includes separados. El programador de SAP también puede hacer una propuesta para el texto fuente. subrutinas (FORM) ni módulos (MODULE). que no se puede modificar. También puede crear elementos de texto propios para el grupo de funciones. 63 .

.I01 contiene los módulos PAI correspondientes.. • • • • LX..... Gráfico 46: Objetos de cliente en un grupo de funciones de exit Puede crear subrutinas.O01 contiene módulos PBO para pantallas que se deben suministrar. 64 © 2009 SAP AG. módulos y eventos interactivos (AT) mediante sus propios includes incorporados mediante el include ZXaaaZZZ.. 10-07-2009 .Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Gráfico 45: Otros objetos SAP en un grupo de funciones de exit Los programadores de SAP pueden proporcionarle subrutinas predeterminadas en el include LXaaaF01. Podría haber también otros includes con subobjetos específicos..F01 contiene subrutinas proporcionadas por SAP. LX. LX.E01 contiene los eventos que pertenecen al grupo de funciones X. Reservados todos los derechos. LX.

Insert a CALL SCREEN 9000 statement into the enhancement. All these objects can be empty: You only demonstrate that the objects you create are created in includes in the customer name range. Los módulos PBO para estas pantallas se encuentran en el include ZXaaaO01. Create some modules for the screen. Las pantallas creadas de este modo reciben automáticamente el nombre del programa principal del módulo de funciones (SAPLXaaa). 10-07-2009 © 2009 SAP AG. 65 . Use la navegación hacia delante (seleccione un objeto y haga doble clic en él) para crear pantallas y módulos propios. Puede usar CALL SCREEN para llamar sus propias pantallas. Double-click the name of the subroutine to create it. Cree los programas de include relacionados para los módulos PBO y PAI en el programa de include ZXaaaZZZ. Reservados todos los derechos.TAW12_2 Lección: Exit de programa Los demás includes deben respetar la siguiente convención para fijar nombres: • • • • ZXaaaFnn para subrutinas ZXaaaOnn para módulos PBO ZXaaaInn para módulos PAI ZXaaaEnn para eventos Gráfico 47: Pantallas de cliente Work on your demo in parallel to the slides: Insert a PERFORM ROUTINE statement in the customer’s include. los módulos PAI se encuentran en el include ZXaaaI01. Create the screen by doubleclicking and inserting some text.

10-07-2009 . 66 © 2009 SAP AG.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Gráfico 48: Resumen: Exits de programa Puede ampliar las aplicaciones de SAP añadiendo su propia lógica de procesamiento en puntos predefinidos. Puede incluir sus propias pantallas con la lógica de procesamiento correspondiente y la interfase de usuario gráfica en estas ampliaciones. y crear sus propios elementos de texto. Reservados todos los derechos.

1. Reservados todos los derechos. Verifique los resultados. si pertenece al pasado). muestre una advertencia con un texto adecuado. No modifique el programa SAP. 3. En caso afirmativo. Tarea 2: Implementar la ampliación. Modifique el programa de forma que aparezca una advertencia cuando se seleccione un vuelo de una fecha pasada. utilice el mensaje 011 de la clase de mensaje BC425. Programe la comprobación siguiente: Compruebe si la fecha introducida es anterior a la fecha de hoy (es decir. ¿Ha implementado el desarrollador de SAP un exit de cliente para la transacción en cuestión que se pueda usar para añadir las funciones necesarias? 2. © 2009 SAP AG. ¿Cómo se llama la ampliación correspondiente? Seleccione la ampliación con la que podrá implementar una comprobación adicional cuando abandone la primera pantalla de la transacción.TAW12_2 59 Lección: Exit de programa Ejercicio 2: Exit de programa Duración del ejercicio: 30 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Implementar una ampliación mediante un exit de programa. 10-07-2009 1. 2. Tarea 1: Compruebe si es posible ampliar la transacción. Para ello. Asigne al proyecto de ampliación el nombre TG##CUS1. Ejemplo empresarial Sus compañeros de trabajo le han pedido que modifique la transacción BC425_## de modo que cada vez que intenten visualizar los detalles de un vuelo en una fecha pasada aparezca un mensaje de advertencia. 67 .

Tarea 2: Implementar la ampliación. Para ello. Para ir a la transacción CMOD. Cree un proyecto llamado TG##CUS1 y grábelo. si pertenece al pasado). a) Seleccione la transacción CMOD para implementar la ampliación. La ampliación que estaba buscando se llama SBC##E01. 10-07-2009 . 1.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Solución 2: Exit de programa Tarea 1: Compruebe si es posible ampliar la transacción. utilice el mensaje 011 de la clase de mensaje BC425. La documentación para la ampliación muestra que se ha previsto para comprobaciones adicionales en la primera pantalla de la transacción. muestre una advertencia con un texto adecuado. Continúa en la página siguiente 68 © 2009 SAP AG. Reservados todos los derechos. Programe la comprobación siguiente: Compruebe si la fecha introducida es anterior a la fecha de hoy (es decir. ¿Cómo se llama la ampliación correspondiente? Seleccione la ampliación con la que podrá implementar una comprobación adicional cuando abandone la primera pantalla de la transacción. a) Ahora puede buscar exits de cliente de varias formas: Puede buscar el string de caracteres CALL CUSTOMER-FUNCTION globalmente en el programa o puede usar el Sistema de Información del Repository para buscar ampliaciones que contengan el nombre del programa en el nombre técnico del componente (use EXIT_SAPBC425_FLIGHT##_* en el nombre del componente para delimitar la búsqueda). ¿Ha implementado el desarrollador de SAP un exit de cliente para la transacción en cuestión que se pueda usar para añadir las funciones necesarias? a) 2. que encontrará en su proyecto. 2. En caso afirmativo. Seleccione Sistema → Status para visualizar el nombre del programa correspondiente (SAPBC425_FLIGHT##). Asigne al proyecto de ampliación el nombre TG##CUS1. a) Incluya la ampliación SBC##E01. seleccione Herramientas → Workbench ABAP → Utilidades → Ampliaciones → Gestión de proyectos en el menú. 1.

69 . Active el include. MESSAGE w011(bc425) WITH sy-datum. Cree el include haciendo doble clic.TAW12_2 Lección: Exit de programa 3. Haga doble clic para abrir el código fuente para el módulo de funciones de exit. 10-07-2009 © 2009 SAP AG. Vuelva a la gestión de proyectos y active el proyecto de ampliación. El código fuente creado podría tener este aspecto: IF flight-fldate < sy-datum. a) Edite los componentes. Verifique los resultados. ENDIF. Reservados todos los derechos.

10-07-2009 . Reservados todos los derechos. 70 © 2009 SAP AG.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Resumen de la lección Ahora podrá: • Buscar exits de programa implementados mediante exits de cliente y usarlos para ampliar las funciones.

Buscar y usar estos exits de menú. Exits de cliente: Exit de menú Gráfico 49: Resumen de los exits de menú 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. Objetivos de la lección Al finalizar esta lección podrá: • • Explicar cómo funcionan los exits de menú implementados mediante exits de cliente.TAW12_2 Lección: 63 Lección: Exit de menú Exit de menú Duración de la lección: 30 Minutos Resumen de la lección En esta lección se demuestra cómo funcionan los exits de menú implementados mediante exits de cliente. También se explica cómo buscarlos y usarlos. 71 . - Ejemplo empresarial Desea buscar y usar exits de menú implementados mediante exits de cliente.

Sólo aparecen después de haberlos activado. aparecen en el menú SAP. Puede especificar personalmente el texto de la entrada correspondiente. Reservados todos los derechos. 72 © 2009 SAP AG. Estos códigos de función no están activos al principio y no aparecen en la pantalla. Gráfico 50: Necesidades de exit de menú Para implementar exits de menú. los programadores de SAP equipan la interfase GUI de su programa de aplicación con códigos de función que empiezan con el signo “+”. 10-07-2009 .Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Los exits de menú permiten añadir funciones propias a las opciones de menú en menús SAP. Los programadores de SAP reservan algunas opciones de menú para ello en su interfase GUI. Después de activar los exits de menú. el sistema cambiará a un exit de programa que contenga las funciones específicas de cliente. Cuando seleccione la opción de menú correspondiente.

73 . Reservados todos los derechos.TAW12_2 Lección: Exit de menú Gráfico 51: Exits de menú y exits de programa Los programadores de SAP determinan dónde lee un programa los códigos de función adicionales y cómo reacciona. Gráfico 52: Asignación de nombre y edición de exits de menú 10-07-2009 © 2009 SAP AG. Para ello utilizan un exit de programa o una función predefinida.

El pulsador para editar componentes llama una ventana de diálogo en la que se pueden introducir descripciones breves y elegir un idioma para cada opción de menú adicional.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 First. show your students the enhancement containing both a menu exit and a function module exit (SBC00E02). Los exits de menú se editan mediante la transacción de gestión de proyectos (CMOD). Simply send an appropriate information message. 10-07-2009 . Now. Reservados todos los derechos. Course participants should now understand why an additional hierarchy level for enhancements must exist above the hierarchy level for components. Go to the function key overview where you can find all function keys that belong to that program. Implement the enhancement: Change the text of the menu. The example demonstrates the high degree to which these two kinds of enhancements are interconnected. Create the include in the exit function module. Consejo: No modifique la interfase GUI. show your students a menu for transaction BC425_00. 74 © 2009 SAP AG.

Reservados todos los derechos. Vuelva de nuevo a la transacción BC425_## cuando salga de la lista. quieren más. Tarea 1: Examine la transacción BC425_##. seleccione la opción de menú adicional. ¿Ha implementado el desarrollador de SAP un exit de cliente para la transacción que se pueda usar para añadir las funciones necesarias? 2. use los datos disponibles en el exit de programa. Los nuevos mensajes de advertencia en la transacción BC425_## les ayudan a evitar seleccionar vuelos de fechas pasadas. ¿Cómo se llama la ampliación correspondiente? Seleccione la ampliación que le permita implementar una ampliación de menú.. Siempre ha usado un programa adecuado que genera listas y se llama SAPBC425_BOOKING_##. ¿Es posible llamar el programa con una opción de menú en la transacción? 1. Inicie el programa especificado anteriormente. 1. 2. Ejemplo empresarial Sus compañeros de trabajo están encantados con las nuevas funciones que ha incorporado al sistema. Para ello. 10-07-2009 © 2009 SAP AG.. 3. 75 . Asigne al proyecto de ampliación el nombre TG##CUS2. Edite los componentes de la ampliación. Tarea 2: Implementar la ampliación. Sin embargo. Transfiera los datos de transacción actuales a la imagen de selección del programa que desee llamar.TAW12_2 67 Lección: Exit de menú Ejercicio 3: Exit de menú Duración del ejercicio: 30 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Implementar una ampliación mediante un exit de menú y un exit de programa. para ello. Quieren que cree un enlace en la transacción que les permita ver los vuelos y visualizar una lista de reservas del vuelo actual desde la transacción de visualización de vuelos. Verifique los resultados. los usuarios tenían que llamarlo por separado e introducir los datos actuales en una imagen de selección de programa. Sin embargo.

2. Edite los componentes de la ampliación. Para ello. Tarea 2: Implementar la ampliación. seleccione la opción de menú adicional.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Solución 3: Exit de menú Tarea 1: Examine la transacción BC425_##. Transfiera los datos de transacción actuales a la imagen de selección del programa que desee llamar. Vuelva de nuevo a la transacción BC425_## cuando salga de la lista. Resulta útil realizar búsquedas con el Sistema de Información del Repository o la transacción CMOD. Cree un proyecto llamado TG##CUS2 y grábelo. que encontrará en su proyecto. Cree el include de cliente mediante la navegación hacia delante. ¿Es posible llamar el programa con una opción de menú en la transacción? 1. b) Busque una ampliación con un componente cuyo nombre contenga el nombre del programa (delimite la búsqueda mediante el nombre de componente SAPBC425_FLIGHT##*). seleccione Herramientas → Workbench ABAP → Utilidades → Ampliaciones → Gestión de proyectos en el menú. Incluya la ampliación SBC##E02. a) Seleccione la transacción CMOD para implementar la ampliación. Asigne al proyecto de ampliación el nombre TG##CUS2. use los datos disponibles en el exit de programa. Asigne un texto de menú. Edite los componentes de la ampliación. Continúa en la página siguiente 76 © 2009 SAP AG. ¿Ha implementado el desarrollador de SAP un exit de cliente para la transacción que se pueda usar para añadir las funciones necesarias? a) Examine la transacción como en el ejercicio anterior. a) La ampliación que estaba buscando se llama SBC##E02. 2. 10-07-2009 . para ello. a) 3. ¿Cómo se llama la ampliación correspondiente? Seleccione la ampliación que le permita implementar una ampliación de menú. Reservados todos los derechos. Inicie el programa especificado anteriormente. b) Para ir a la transacción CMOD. 1. Haga doble clic en el exit de programa para editarlo.

a) El texto fuente del include del grupo 00 debería ser: SUBMIT sapbc425_booking_## WITH so_car = flight-carrid WITH so_con = flight-connid WITH so_fld = flight-fldate AND RETURN. 10-07-2009 © 2009 SAP AG. 77 . Active el proyecto de ampliación. Reservados todos los derechos. Active su programa de include.TAW12_2 Lección: Exit de menú Verifique los resultados.

10-07-2009 . 78 © 2009 SAP AG. Reservados todos los derechos.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Resumen de la lección Ahora podrá: • Explicar cómo funcionan los exits de menú implementados mediante exits de cliente. • Buscar y usar estos exits de menú.

- Ejemplo empresarial Desea buscar y usar exits de dynpro disponibles en la versión estándar del sistema SAP. Reservados todos los derechos.TAW12_2 Lección: 71 Lección: Exit de dynpro Exit de dynpro Duración de la lección: 30 Minutos Resumen de la lección En esta lección se explica cómo buscar un exit de dynpro implementado mediante un exit de cliente y se enumeran los usos posibles. 79 . Objetivos de la lección Al finalizar esta lección podrá: • Desea buscar y usar exits de dynpro implementados mediante exits de cliente. Exits de cliente: Exit de dynpro Gráfico 53: Resumen de los exits de dynpro 10-07-2009 © 2009 SAP AG.

Defina los campos necesarios en una pantalla de cliente (subscreen). 80 © 2009 SAP AG. Reservados todos los derechos.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Los exits de dynpro permiten utilizar secciones de una pantalla principal reservadas por los programadores de SAP (áreas de subscreen). En cada área subscreen se puede visualizar otra pantalla (del tipo subscreen) en tiempo de ejecución. Puede visualizar la información adicional o los datos introducidos en estas áreas. Gráfico 54: Subscreens (generales) Las subscreens son áreas rectangulares de la pantalla reservadas para visualizar pantallas adicionales en tiempo de ejecución. 10-07-2009 .

© 2009 SAP AG. En un control de flujo de subscreen no se puede introducir ningún valor para la pantalla siguiente. Las subscreens no pueden asignar un nombre a “su” campo de comandos. La secuencia de llamadas “CALL SUBSCREEN” en la lógica de proceso de la pantalla principal determina la secuencia en la que se procesará la lógica de proceso de las pantallas subscreen individuales.TAW12_2 Lección: Exit de dynpro Gráfico 55: Llamada de un subscreen normal Su sistema determina qué pantalla se visualizará en un área subscreen en PBO. Las subscreens no pueden definir status de GUI. Por cada subscreen se procesan eventos PAI y PBO como si la subscreen fuera una pantalla “normal”. La sintaxis general es: CALL SUBSCREEN <área subscreen> INCLUDING <prg> <número_dynpro>. 81 . Reservados todos los derechos. Atención: • • • • 10-07-2009 El código de función sólo se puede procesar en la pantalla principal.

El grupo de funciones al cual pertenece la subscreen se debe definir estáticamente en apóstrofes.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Gráfico 56: Definición de exits de dynpro El programador de SAP puede reservar varias áreas de subscreen para una pantalla. Se llama la subscreen durante el control del flujo de la pantalla principal mediante la sentencia CALL CUSTOMER-SUBSCREEN. 10-07-2009 . El nombre del área subscreen no puede contener apóstrofes. y se omiten cuando se procesa una pantalla. Reservados todos los derechos. Las llamadas de exit de dynpro no están activas al principio. Normalmente. Las subscreens se crean en un grupo de funciones X. 82 © 2009 SAP AG. pero el número de pantalla se puede mantener variable mediante campos. La llamada sólo se activa después de haber creado una subscreen correspondiente en un proyecto de ampliación y de haber activado dicho proyecto. Siempre debe tener cuatro posiciones. estos grupos de funciones contienen también módulos de funciones de exit.

First. Now. 83 . Cada vez que la sentencia CALL CUSTOMER-SUBSCREEN <área subscreen> INCLUDING <pool de funciones X> <número_dynpro> aparece en PBO en el control de flujo de una pantalla. You can now edit the components. Place fields of table SFLIGHT00 to the subscreen. Navigate to the Screen Painter to show the flow logic and the subscreen area. Show the result: No data is displayed in the new fields. Llegados a este punto. search for the corresponding SAP enhancement SBC00E03. create the subscreen.TAW12_2 Lección: Exit de dynpro Gráfico 57: Llamada de subscreens de cliente Show your students screen 200 of transaction BC425_00. 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. Go back and activate your project. El evento PAI de una subscreen se procesa cuando la pantalla llama la subscreen durante su evento PAI mediante la sentencia CALL CUSTOMER-SUBSCREEN <área subscreen>. se incluye una subscreen en el área subscreen definida por los programadores de SAP. This will be the next step. se procesan también todos los módulos llamados durante el evento. Create a new project. Assign the SAP enhancement to the project.

Los módulos de funciones de exit correspondientes están en el mismo grupo de funciones X en el que se crea la subscreen de cliente. en el control de flujo del programa de llamada se llaman los módulos que contienen exits de programa para transferir datos mediante parámetros de interfase. A fin de facilitar el transporte de datos. 84 © 2009 SAP AG. Reservados todos los derechos.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Gráfico 58: Transporte de datos a subscreens El grupo de funciones X que contiene su subscreen desconoce los datos globales del programa de llamada. 10-07-2009 . Los programadores de SAP usan exits de programa para proporcionar datos de forma explícita a los subscreens.

Para ello. 10-07-2009 © 2009 SAP AG. 85 . Los datos se deben transportar también en dirección contraria. los programadores de SAP usan exits de programa para devolver los datos modificados en la subscreen al programa de llamada. ya que el programa de llamada desconoce también los datos globales del grupo de funciones X que contiene las entradas de usuario en la subscreen. Reservados todos los derechos. el sistema llama un módulo en el evento PAI de la pantalla principal. Por ello. Este módulo contiene un exit de programa que puede recibir los datos globales relevantes para el grupo de funciones X.TAW12_2 Lección: Exit de dynpro Gráfico 59: Transporte de datos desde subscreens Continue working on your demo: Implement the function module exit and bring the data to the subscreen.

Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Gráfico 60: Asignación de nombre y edición de exits de dynpro Los exits de dynpro se editan mediante la transacción de gestión de proyectos (CMOD). El nombre técnico de un exit de dynpro está formado por el nombre del programa de llamada. 86 © 2009 SAP AG. 10-07-2009 . seguido del nombre del programa del grupo de funciones X y del número de la subscreen. Reservados todos los derechos. el número de cuatro dígitos de la pantalla principal y el nombre del área subscreen.

No podrá modificar las interfases en el grupo de funciones X al que pertenecen la subscreen y los exits de programa. asegúrese de que tenga el tipo de pantalla subscreen. ni añadir módulos de funciones propios.TAW12_2 Lección: Exit de dynpro Gráfico 61: Edición de subscreens El entorno de desarrollo de SAP permite crear subscreens de cliente y los módulos PBO y PAI correspondientes como parte de la navegación hacia delante. Reservados todos los derechos. 87 . 10-07-2009 © 2009 SAP AG. Consejo: Cuando cree la subscreen.

Capítulo 3: Ampliaciones mediante exits de cliente 88 © 2009 SAP AG. TAW12_2 10-07-2009 . Reservados todos los derechos.

en la que se muestran los vuelos. 1. ¿cómo se llama la ampliación correspondiente? Tarea 2: Implemente la ampliación para lograr lo siguiente (nombre de proyecto: TG##CUS3): 1. Si es así. ¿Existe un exit de dynpro para ampliar la pantalla? 2. pudiera mostrar más datos”. Acepta este nuevo reto que le plantean sus compañeros de trabajo e intenta solucionar el problema sin modificar la transacción. Asegúrese de que los datos se transporten correctamente a la subscreen. 89 . Ejemplo empresarial “Sería estupendo si la lista detallada de la transacción BC425_##. Tarea 1: ¿Qué tipo de opciones existen para añadir campos adicionales a una pantalla? Fíjese bien en la pantalla 200 de la transacción BC425_## y compruebe si es posible. Añada tres campos a la pantalla. 10-07-2009 Para verificar el resultado del trabajo realizado. Concretamente. proceda del siguiente modo: © 2009 SAP AG. empieza por buscar un modo de añadir campos nuevos a la segunda pantalla de esta transacción (número de pantalla 200). Debería aparecer lo siguiente: Nombre del piloto Menú El número de tres cifras del vuelo actual 2.TAW12_2 79 Lección: Exit de dynpro Ejercicio 4: Exit de dynpro Duración del ejercicio: 45 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Visualizar más campos en una pantalla de transacción de SAP y completarlos con datos. Reservados todos los derechos. Tarea 3: Verificación de los resultados 1.

1. El nombre de la ampliación es SBC##E03. Reservados todos los derechos. b) Examine la lógica de proceso de las pantallas en busca del string de caracteres CALL CUSTOMER-SUBSCREEN. Debería aparecer lo siguiente: Continúa en la página siguiente 90 © 2009 SAP AG. Verá que la pantalla 200 de la transacción BC425_## ofrece un exit de dynpro. Verá que la pantalla 200 de la transacción BC425_## ofrece un exit de dynpro. Si es así. Añada tres campos a la pantalla.Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Solución 4: Exit de dynpro Tarea 1: ¿Qué tipo de opciones existen para añadir campos adicionales a una pantalla? Fíjese bien en la pantalla 200 de la transacción BC425_## y compruebe si es posible. por ejemplo (véanse los ejercicios anteriores). 10-07-2009 . ¿cómo se llama la ampliación correspondiente? a) Puede visualizar el nombre de la ampliación si lo busca en el Sistema de Información del Repository. ¿Existe un exit de dynpro para ampliar la pantalla? a) Fíjese en las pantallas de transacción del Screen Painter. Tarea 2: Implemente la ampliación para lograr lo siguiente (nombre de proyecto: TG##CUS3): 1. 2.

Include TOP: TABLES: sflight##. Puede crear la pantalla 0500 haciendo doble clic en el componente de ampliación correspondiente. Si se amplía la estructura append. seatsfree = flight-seatsmax – flight-seatsocc. a) Use el exit de programa de la ampliación para transportar los datos correctamente. se podrían producir errores en el programa. Reservados todos los derechos. b) Use el exit de dynpro para ampliar la pantalla. cree un proyecto llamado TG##CUS3. Tarea 3: Verificación de los resultados 1. Asegúrese de que los datos se transporten correctamente a la subscreen. Active el programa y luego active el proyecto de ampliación. 91 . No lo haga en este ejercicio. DATA: seatsfree type s_seatsocc. Asegúrese de que selecciona el tipo de pantalla “Subscreen”. A continuación podrá colocar este campo de programa en la pantalla. a) Implemente la ampliación del mismo modo que en los ejercicios anteriores. Edite los componentes. proceda del siguiente modo: a) 10-07-2009 Implemente la transacción BC425_## y compruebe el resultado de su trabajo. Para verificar el resultado del trabajo realizado. Incluya la ampliación SBC##E03 en su proyecto. porque el instructor utiliza un programa para completar los campos de la estructura append.TAW12_2 Lección: Exit de dynpro Nombre del piloto Menú El número de tres cifras del vuelo actual 2. Tiene dos opciones para insertar un campo en la pantalla para los espacios en blanco: Puede declarar una variable en el include TOP del grupo de funciones X y generar el programa. También puede ampliar su estructura append. Con la transacción CMOD. © 2009 SAP AG. Cree el include de cliente e introduzca el código fuente siguiente: MOVE-CORRESPONDING flight TO sflight##. Copie los campos de la estructura correspondiente SFLIGHT## en el Dictionary.

Capítulo 3: Ampliaciones mediante exits de cliente TAW12_2 Resumen de la lección Ahora podrá: • Desea buscar y usar exits de dynpro implementados mediante exits de cliente. Reservados todos los derechos. 92 © 2009 SAP AG. 10-07-2009 .

Reservados todos los derechos. 93 . • Buscar y usar estos exits de menú. • Buscar exits de programa implementados mediante exits de cliente y usarlos para ampliar las funciones.TAW12_2 Resumen del capítulo Resumen del capítulo Ahora podrá: • Explicar cómo están organizados los exits de cliente y los principios básicos de su utilización • En esta lección se explican los aspectos fundamentales de un proyecto de ampliación que se debe usar para implementar exits de cliente existentes. 10-07-2009 © 2009 SAP AG. • Explicar cómo funcionan los exits de menú implementados mediante exits de cliente. • Desea buscar y usar exits de dynpro implementados mediante exits de cliente.

10-07-2009 . Reservados todos los derechos.Resumen del capítulo 94 TAW12_2 © 2009 SAP AG.

....6.............................. 95 . Contenido del capítulo Lección: Add-ins empresariales: Utilización . Explicar el código predeterminado y el código de ejemplo de un BAdI.......... Explicar lo que es un tipo de filtro extensible.100 Ejercicio 5: Creación e implementación de un BAdI .............................. Buscar add-ins empresariales disponibles en los programas de SAP................ 96 Lección: Creación e implementación de un BAdI .. 113 Lección: BAdI: Información adicional ......Capítulo 4 Add-ins empresariales 85 Resumen del capítulo • • Búsqueda de add-ins empresariales Implementación de add-ins empresariales Objetivos del capítulo Al finalizar este capítulo podrá: • • • • • Explicar por qué SAP introdujo BAdI clásicos como ampliación en el release 4.... 118 10-07-2009 © 2009 SAP AG.............. Reservados todos los derechos. Usar add-ins empresariales para implementar ampliaciones de programa.......

desea que la implementación contenga la menor cantidad posible de modificaciones. Concretamente. BTE) – No se ampliaban los menús (BTE) – No había nivel de administración (BTE) Requisitos para técnicas de ampliación nuevas: – – – – 96 Uso múltiple Ampliaciones de todos los tipos (exit de dynpro/menú/programa) Nivel de administración Implementación mediante la tecnología más moderna © 2009 SAP AG.6. desea usar los BAdI ofrecidos por SAP siempre que sea posible. Utilización de los BAdI clásicos Add-ins empresariales: Utilización • Inconvenientes de las técnicas de ampliación anteriores • – Sólo se podían usar una vez (exits de cliente) – No se ampliaban las pantallas (eventos de operación. 10-07-2009 . Reservados todos los derechos. Objetivos de la lección Al finalizar esta lección podrá: • Explicar por qué SAP introdujo BAdI clásicos como ampliación en el release 4.Capítulo 4: Add-ins empresariales Lección: 86 TAW12_2 Add-ins empresariales: Utilización Duración de la lección: 5 Minutos Resumen de la lección En esta lección se explica por qué SAP introdujo add-ins empresariales (BAdI) clásicos como ampliación en el release 4. - Ejemplo empresarial Desea añadir nuevas funciones a una transacción de actualización de vuelos en un sistema SAP. Para reducir al mínimo las entradas durante el upgrade siguiente.6.

Gráfico 62: Proceso de suministro del software 10-07-2009 © 2009 SAP AG. 97 . Reservados todos los derechos.TAW12_2 Lección: Add-ins empresariales: Utilización • Motivate the benefits of Business Add-Ins and compare them to older techniques • Emphasize that BAdIs are the first enhancement technique that can be used to provide enhancements even by CSP solution providers or customers themselves.

- 98 © 2009 SAP AG. 10-07-2009 . Reservados todos los derechos. También puede utilizar sus propias preguntas.Capítulo 4: Add-ins empresariales TAW12_2 Discusión con moderador - Preguntas para la discusión Utilice las siguientes preguntas para que los participantes del curso tomen parte en la discusión.

10-07-2009 © 2009 SAP AG.6. 99 . Reservados todos los derechos.TAW12_2 Lección: Add-ins empresariales: Utilización Resumen de la lección Ahora podrá: • Explicar por qué SAP introdujo BAdI clásicos como ampliación en el release 4.

10-07-2009 . Reservados todos los derechos.Capítulo 4: Add-ins empresariales Lección: 89 TAW12_2 Creación e implementación de un BAdI Duración de la lección: 40 Minutos Resumen de la lección En esta unidad aprenderá cómo funcionan los exits de menú y de programa implementados mediante BAdI. 100 © 2009 SAP AG. Usar add-ins empresariales para implementar ampliaciones de programa. Objetivos de la lección Al finalizar esta lección podrá: • • Buscar add-ins empresariales disponibles en los programas de SAP. También se explica cómo buscar y usar los BAdI. - Ejemplo empresarial Desea usar los BAdI clásicos proporcionados en la versión estándar del sistema SAP para ampliar su software de SAP.

En la parte inferior del gráfico se explica cómo funcionan los add-ins empresariales. La interfase es implementada también por el usuario. En la parte superior del gráfico se ilustra el proceso de entrega habitual: Ya no implica tan sólo al proveedor y al usuario. La principal ventaja de esta idea es su capacidad de reutilización. Para ello se necesita como mínimo una interfase y una clase BAdI que la implemente. a diferencia de los exits de cliente. tienen en cuenta las modificaciones en el proceso de entrega del software. En cambio. incluso los elementos a la derecha de la cadena de entrega del software pueden hacerlo. 101 . Los programas de aplicación de SAP posibilitan las ampliaciones. 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: Creación e implementación de un BAdI BAdI clásicos Gráfico 63: Add-ins empresariales: Arquitectura Los add-ins empresariales. Reservados todos los derechos. Un BAdI se puede implementar varias veces. ahora puede implicar a toda una cadena de proveedores intermediarios. Los add-ins empresariales también permiten que cada elemento de la cadena de entrega del software ofrezca mejoras.

las ampliaciones de pantalla que pueda implementar se podrán definir en un BAdI. la clase BAdI garantiza que sólo se llamen las implementaciones relevantes. Cada add-in empresarial puede contener los componentes siguientes: • • • Ampliaciones del programa: En un add-in empresarial. se crean varios componentes: • • La interfase La clase generada (clase BAdI) que implementa la interfase La clase generada (clase BAdI) realiza las tareas siguientes: • • 102 Filtrado: Si un BAdI sólo debe ser implementado en determinadas condiciones. © 2009 SAP AG. El programa SAP llama el método de interfase de la clase BAdI generada. Ampliaciones de menú: En un BAdI se pueden introducir códigos de función. Esta interfase se usa para implementar la ampliación. Cuando se define un add-in empresarial. al igual que exits de cliente.Capítulo 4: Add-ins empresariales TAW12_2 Gráfico 64: Add-ins empresariales: Componentes Un add-in empresarial contiene los componentes de una ampliación. 10-07-2009 . las interfases para programar ampliaciones se definen en forma de métodos de interfase. Las opciones de menú correspondientes están disponibles en la definición de CUA y se visualizan después de haber implementado el BAdI. Reservados todos los derechos. Control: La clase BAdI llama las implementaciones activas. Ampliaciones de pantalla: Al igual que los exits de cliente.

el sistema genera una clase BAdI que implementa la interfase. Permite ver las opciones y restricciones inherentes a los add-ins empresariales.TAW12_2 Lección: Creación e implementación de un BAdI Gráfico 65: Add-ins empresariales: Flujo de exit de programa En este gráfico se muestra el flujo de proceso de un programa que contiene una llamada de add-in empresarial. De este modo se crean las condiciones para llamar los métodos de la ampliación del programa. Cuando se define un BAdI. debe declarar una variable de referencia que haga referencia a la interfase de BAdI. 103 . En la llamada (2). No se visualiza: En la sección de declaración. 10-07-2009 © 2009 SAP AG. La clase BAdI busca todas las implementaciones activas del BAdI y llama los métodos que se han implementado. Reservados todos los derechos. se llama el método de interfase de la clase BAdI. Más adelante comentaremos la sintaxis exacta. En el primer paso se genera una referencia de objeto. Sustituye a la clase de servicio CL_EXITHANDLER proporcionada por SAP.

10-07-2009 . El nombre de la variable de referencia no tiene que contener necesariamente el nombre del BAdI.Capítulo 4: Add-ins empresariales TAW12_2 Gráfico 66: Add-ins empresariales: Sintaxis de llamada en el programa SAP En este gráfico se muestra la sintaxis para llamar un add-in empresarial. Puede usar esta referencia de objeto para llamar los métodos necesarios disponibles con la ampliación (2). De este modo se crea una instancia de la clase BAdI generada. se debe definir una variable de referencia que haga referencia a la interfase de BAdI. Los círculos numerados corresponden a las llamadas del gráfico anterior. En la primera llamada (1) se crea una referencia de objeto. Con esta referencia de objeto sólo se puede establecer contacto con los métodos de la interfase. Reservados todos los derechos. 104 © 2009 SAP AG. En primer lugar.

se debe llamar también el método “GET_INSTANCE” de esta clase.TAW12_2 Lección: Creación e implementación de un BAdI Gráfico 67: Búsqueda de un add-in empresarial Hay varias maneras de buscar add-ins empresariales: Se puede buscar el string “CL_EXITHANDLER” en un programa de aplicación relevante. Create an implementation. Mediante la navegación hacia delante y de acuerdo con las convenciones para fijar nombres. Como alternativa. Edit the components following the subsequent slides. Use la jerarquía de aplicaciones para limitar los componentes en los que desea buscar. 10-07-2009 © 2009 SAP AG. 105 . Si se llama un add-in empresarial. Reservados todos los derechos. Inicie el Sistema de Información del Repository y seleccione “ Ampliaciones → Add-ins empresariales ” para iniciar el programa de búsqueda relevante. puede utilizar las entradas en el componente relevante de la IMG. puede llegar a la definición de un add-in empresarial que contenga documentación y una guía de implementación del add-in empresarial.

10-07-2009 . 106 © 2009 SAP AG. Nota: En SAP NetWeaver Application Server 7.Capítulo 4: Add-ins empresariales TAW12_2 Gráfico 68: Implementación de add-ins empresariales: Pantalla inicial Para implementar add-ins empresariales. También puede usar la transacción de definición de add-ins empresariales (SE18) para acceder a sus implementaciones. Aparecerá una ventana de diálogo. Aparecerá la pantalla de actualización del add-in empresarial. use la transacción SE19 (Herramientas → Workbench ABAP → Utilidades → Add-ins empresariales → Implementación). Introduzca un nombre para la implementación y seleccione “Crear”. El menú contiene una entrada “Implementación” que se puede usar para visualizar un resumen de las implantaciones existentes.0 se incluyen nuevos BAdI además de los BAdI "clásicos" anteriores (véase el documento adjunto). Para crear una implementación para un BAdI clásico. seleccione “BAdI clásico” en el área de entrada inferior de la pantalla inicial. Introduzca el nombre del add-in empresarial. La pantalla inicial de la transacción SE19 se ha ajustado en consecuencia. Introduzca el nombre del BAdI en el campo correspondiente y seleccione “Crear impl”. Desde aquí se pueden crear también nuevas implementaciones. Reservados todos los derechos.

El nombre se deriva de la siguiente forma: • • • • Prefijo de área de nombres. 107 . active los objetos. Y o Z CL_ (de clase) IM_ (de implementación) Nombre de la implementación (sin prefijo de área de nombres) Para implementar el método. Cuando termine. haga doble clic en su nombre.TAW12_2 Lección: Creación e implementación de un BAdI Gráfico 69: Implementación de add-ins empresariales: Métodos Puede asignar el nombre que desee a la clase de implementación. Reservados todos los derechos. El sistema inicia el editor Generador de clases. Sin embargo. 10-07-2009 © 2009 SAP AG. es aconsejable observar la convención propusta para fijar nombres.

Gráfico 71: Implementación de add-ins empresariales: Activación de una implementación 108 © 2009 SAP AG. Los métodos privados se crean con la interfase incluida. Especifique una visibilidad para el método e impleméntela. Reservados todos los derechos. 10-07-2009 . Para ello.Capítulo 4: Add-ins empresariales TAW12_2 Gráfico 70: Implementación de add-ins empresariales: Métodos privados En la clase de implementación puede crear métodos privados que podrá llamar luego desde el método de interfase. debe editar las clases de implementación directamente en el generador de clases.

A partir de aquí. Lo mismo ocurre con la llamada del método de la clase de adaptador. Sin embargo. los métodos de la implementación se ejecutarán cuando se ejecute el programa de llamada relevante. se deben cumplir las condiciones siguientes: • • 10-07-2009 El desarrollador del programa que desea ampliar debe haber previsto la ampliación. Sin embargo. los métodos no volverán a llamarse. © 2009 SAP AG. la llamada “CALL METHOD CL_EXITHANDLER=>GET_INSTANCE” se sigue ejecutando aunque no haya implementaciones. A diferencia de “CALL CUSTOMER-FUNCTION”. sí se seguirán procesando las llamadas correspondientes en el programa de aplicación. La ampliación de menú se debe implementar en una implementación de add-in empresarial. Aunque un add-in empresarial sólo se pueda implementar una vez. 109 . Gráfico 72: BAdI: Exit de menú (resumen) Al igual que ocurre con los exits de usuario. Sólo se puede activar o desactivar una implementación en su sistema original. Si desactiva la implementación. Sin embargo. sólo habrá una activa cada vez. La diferencia es que la instancia de la clase de adaptador no encontrará implementaciones activas. puede seguir habiendo más de una implementación en el mismo sistema. La activación o desactivación se debe transportar a los sistemas posteriores.TAW12_2 Lección: Creación e implementación de un BAdI Use el icono correspondiente para activar la implementación de un add-in empresarial. se pueden usar ampliaciones de menú con add-ins empresariales. Reservados todos los derechos. sin modificaciones.

Reservados todos los derechos. La opción de menú sólo aparecerá si hay una implementación de add-in empresarial activa que contenga la ampliación correspondiente. 10-07-2009 . Gráfico 74: BAdI: Exit de menú (procesamiento de códigos de función) 110 © 2009 SAP AG.Capítulo 4: Add-ins empresariales TAW12_2 Gráfico 73: BAdI: Exit de menú (preparativos de SAP) Los códigos de función de las ampliaciones de menú empiezan por un signo “+”.

(“¿Qué opción de menú se debería visualizar?”) 10-07-2009 © 2009 SAP AG. Si el usuario elige la opción de menú en el programa que tiene asignado el código de función “+<exit>”. However. you could create one very quickly. Reservados todos los derechos. el sistema procesará la llamada de método relevante. No tendría sentido tener una sin la otra.TAW12_2 Lección: Creación e implementación de un BAdI Arbitrary. There is no standard demo for menu exits. es importante que los dos componentes de ampliación estén en una misma ampliación: el add-in empresarial. Por ello. 111 . Gráfico 75: BAdI: Exit de menú (restricción) Sólo podrá crear códigos de función para add-ins empresariales. Además. La llamada de método y la ampliación de menú se pertenecen mutuamente y son inseparables. el add-in empresarial no debe depender de ningún filtro. Estas restricciones son necesarias para garantizar que no haya conflictos entre dos o más implementaciones.

Reservados todos los derechos.Capítulo 4: Add-ins empresariales 112 © 2009 SAP AG. TAW12_2 10-07-2009 .

úselo. Reservados todos los derechos. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. 1. 1. Obtenga el nombre del cliente a partir de su número de cliente. 1. Tarea 3: Formatee la lista. Tarea 1: Compruebe si el programa SAPBC425_BOOKING_## (## = número de grupo) se puede ampliar. ¿El método CHANGE_VLINE es adecuado para cambiar la posición de la línea vertical? En caso afirmativo. La lista debería contener el nombre del cliente además de su número de cliente. 2. Verificar si el programa ofrece opciones ampliadas. ¿Cómo se puede mover la línea vertical de modo que los campos adicionales se visualicen dentro del marco? 2. ¿Qué datos se transfieren a las interfases de los métodos? ¿Existen ya campos que se deban visualizar en la lista? 2. La tabla SCUSTOM contiene información sobre los clientes.TAW12_2 101 Lección: Creación e implementación de un BAdI Ejercicio 5: Creación e implementación de un BAdI Duración del ejercicio: 30 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Implementar una ampliación mediante add-ins empresariales Ejemplo empresarial El personal de atención al cliente de la agencia de viajes desea que la lista de las reservas que ha implementado en el ejercicio sobre los exits de menú contenga más información. Tarea 2: Implementar la ampliación encontrada. Compruebe si hay una opción de ampliación adecuada para visualizar más información en la lista. Visualice el nombre. 113 . Nombre de la implementación: ZBC425IM##.

© 2009 SAP AG.Capítulo 4: Add-ins empresariales TAW12_2 Tarea 4: 1. Reservados todos los derechos. 10-07-2009 . 114 Verifique los resultados.

Haga doble clic en el nombre del programa (también puede ir directamente al Editor ABAP). Verificar si el programa ofrece opciones ampliadas. a) Inicie la transacción SE18 (BAdI Builder: Pantalla inicial para definiciones). 2. Debe leer los datos correspondientes por separado. Busque el string de caracteres CL_EXITHANDLER en el programa. Llame una referencia de utilización para la interfase en las clases. En el generador de clases. Haga doble clic en el parámetro de transferencia exit_book. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. seleccione Implementación → Crear para abrir la transacción que permite crear la implementación de los BAdI. b) Puede visualizar los parámetros de la interfase haciendo doble clic en el método en la transacción SE18. sitúe el cursor en el método deseado y seleccione “Parámetros”. Compruebe si hay una opción de ampliación adecuada para visualizar más información en la lista. 115 . Se inicia el generador de clases. Nombre de la implementación: ZBC425IM##. Reservados todos los derechos. La estructura de transferencia no contiene los campos que desea visualizar en la lista. Tarea 2: Implementar la ampliación encontrada. Haga doble clic en la interfase que se usa para definir el tipo de exit_book. a) Compruebe si el programa SAPBC425_BOOKING_## (## = número de grupo) ofrece opciones ampliadas del modo siguiente: b) Desde la visualización de lista: Sitúe el cursor en la lista y seleccione F1 → Información técnica.TAW12_2 Lección: Creación e implementación de un BAdI Solución 5: Creación e implementación de un BAdI Tarea 1: Compruebe si el programa SAPBC425_BOOKING_## (## = número de grupo) se puede ampliar. 1. Se visualiza la clase CL_EX_BADI_BOOK##. 1. Lea la documentación sobre los add-ins empresariales. ¿Qué datos se transfieren a las interfases de los métodos? ¿Existen ya campos que se deban visualizar en la lista? a) Implementación de la ampliación: Desde la transacción SE18. Nombre de la implementación: ZBC425IM##. El nombre del add-in empresarial es BADI_BOOK##.

A continuación se hace una propuesta para implementar los métodos (grupo 00): METHOD if_ex_badi_book00~output. TAW12_2 La tabla SCUSTOM contiene información sobre los clientes.Capítulo 4: Add-ins empresariales 2. Obtenga el nombre del cliente a partir de su número de cliente. ¿El método CHANGE_VLINE es adecuado para cambiar la posición de la línea vertical? En caso afirmativo. 10-07-2009 . b) El parámetro c_pos define la posición de la línea vertical derecha. a) El método se puede implementar de la siguiente manera: METHOD if_ex_badi_book00~change_vline. 2. c_pos = c_pos + 25. úselo. Reservados todos los derechos. a) Haga doble clic en el nombre del método para ir al editor. Tarea 4: 1. 1. Aquí puede mover el borde derecho de la lista. ENDMETHOD. ¿Cómo se puede mover la línea vertical de modo que los campos adicionales se visualicen dentro del marco? a) Puede usar el método change_vline para formatear la lista. Tarea 3: Formatee la lista. Verifique los resultados. a) 116 – © 2009 SAP AG. DATA: name TYPE s_custname. Visualice el nombre. WRITE: name. SELECT SINGLE name FROM scustom INTO name WHERE id = i_booking-customid. ENDMETHOD.

10-07-2009 © 2009 SAP AG. 117 .TAW12_2 Lección: Creación e implementación de un BAdI Resumen de la lección Ahora podrá: • Buscar add-ins empresariales disponibles en los programas de SAP. • Usar add-ins empresariales para implementar ampliaciones de programa. Reservados todos los derechos.

desea usar los BAdI ofrecidos por SAP siempre que sea posible. 10-07-2009 . Objetivos de la lección Al finalizar esta lección podrá: • • Explicar lo que es un tipo de filtro extensible. Explicar el código predeterminado y el código de ejemplo de un BAdI.Capítulo 4: Add-ins empresariales Lección: 106 TAW12_2 BAdI: Información adicional Duración de la lección: 15 Minutos Resumen de la lección Esta lección contiene información adicional sobre los BAdI. 118 © 2009 SAP AG. Para reducir al mínimo las entradas durante el upgrade siguiente. Concretamente. Reservados todos los derechos. desea que la implementación contenga la menor cantidad posible de modificaciones. - Ejemplo empresarial Desea añadir nuevas funciones a una transacción de actualización de vuelos en un sistema SAP.

la tabla de texto debe estar asignada a la tabla de valores. en esta tabla debe existir un campo que contenga el string ’TEXT’ o ’TXT’ como string parcial. Del mismo modo. 119 . La clase de entrega de ambas tablas debe ser “E” o “S”. Para marcar un campo como campo de texto. La tabla de valores tiene exactamente un campo clave con el elemento de datos del tipo de filtro como tipo de campo. los valores se quitan de la tabla de valores cuando se borra la implementación o todo el add-in empresarial. Los valores de filtro creados en el contexto de un add-in empresarial extensible y dependiente del filtro no deben aparecer aún en el campo de valores. En el Dictionary ABAP. Tiene una tabla de texto con dos campos clave. Lo mismo se puede aplicar a las tablas de texto. Reservados todos los derechos.TAW12_2 Lección: BAdI: Información adicional Información adicional sobre los BAdI Gráfico 76: Tipos de filtro extensible: Requisitos La asignación del atributo extensible está sujeta a las restricciones siguientes: El dominio con el tipo de filtro extensible debe tener las características siguientes: Debe estar enlazado a una tabla de valores independiente del mandante. y se añaden a la tabla de valores cuando se guardan los datos. 10-07-2009 © 2009 SAP AG. Un campo clave tiene el tipo de filtro como tipo de campo. y un campo clave es un campo de idioma.

El sistema genera automáticamente una clase con un nombre predefinido. El proveedor de la ampliación crea la implementación predeterminada. También se puede crear una implementación de ejemplo. Implemente los métodos. Se trata de un modelo que se puede insertar en los métodos de la implementación. El sistema creará una clase que implementará los métodos de la interfase. 10-07-2009 . El código de ejemplo se visualiza para el usuario como modelo. Para crear implementaciones de ejemplo. seleccione Pasar a → Código de ejemplo. 120 © 2009 SAP AG. Para crear una implementación predeterminada en la definición de BAdI. de modo que se consiga el comportamiento predeterminado necesario.Capítulo 4: Add-ins empresariales TAW12_2 Gráfico 77: Implementación predeterminada Una implementación predeterminada se ejecuta si no hay ninguna implementación activa para un add-in empresarial. Reservados todos los derechos. seleccione Pasar a → Código predeterminado.

Reservados todos los derechos. Los add-ins tomaron la idea de la reutilización de los eventos de operación. Gráfico 79: Convenciones para fijar nombres (definición de BAdI) 10-07-2009 © 2009 SAP AG. 121 . junto con la disponibilidad de los diversos componentes de ampliación.TAW12_2 Lección: BAdI: Información adicional Gráfico 78: Comparación con otras técnicas de ampliación Los add-ins empresariales son la evolución natural de las técnicas de ampliación convencionales. que se ha implementado desde un enfoque coherente orientado al objeto. Han tomado la capa de administración de los exits de cliente.

10-07-2009 . Reservados todos los derechos.Capítulo 4: Add-ins empresariales TAW12_2 Gráfico 80: Convenciones para fijar nombres (implementación de BAdI) 122 © 2009 SAP AG.

did you discover BAdIs that you can use in your application area? 10-07-2009 © 2009 SAP AG. What experience of BAdIs did you have prior to the training course? During the training course. También puede utilizar sus propias preguntas.TAW12_2 Lección: BAdI: Información adicional Discusión con moderador To wrap up this topic. Preguntas para la discusión Utilice las siguientes preguntas para que los participantes del curso tomen parte en la discusión. Reservados todos los derechos. allow participants to briefly discuss the use of BAdIs. 123 .

• Explicar el código predeterminado y el código de ejemplo de un BAdI. Reservados todos los derechos. 10-07-2009 .Capítulo 4: Add-ins empresariales TAW12_2 Resumen de la lección Ahora podrá: • Explicar lo que es un tipo de filtro extensible. 124 © 2009 SAP AG.

125 . • Explicar el código predeterminado y el código de ejemplo de un BAdI. • Buscar add-ins empresariales disponibles en los programas de SAP. Reservados todos los derechos.6.TAW12_2 Resumen del capítulo Resumen del capítulo Ahora podrá: • Explicar por qué SAP introdujo BAdI clásicos como ampliación en el release 4. • Usar add-ins empresariales para implementar ampliaciones de programa. 10-07-2009 © 2009 SAP AG. • Explicar lo que es un tipo de filtro extensible.

Resumen del capítulo 126 TAW12_2 © 2009 SAP AG. Reservados todos los derechos. 10-07-2009 .

Usar el Note Assistant para ajustar las correcciones implementadas mediante notas SAP. Usar el Note Assistant para implementar correcciones del código fuente en un sistema SAP. 127 . Explicar cómo funciona el Asistente de modificaciones. Explicar los conceptos básicos en el entorno de modificación. Describir qué son los exits de usuario y cómo funcionan. Realizar modificaciones especializadas mediante el Asistente de modificaciones. Elaborar una lista de las modificaciones realizadas mediante el Browser de modificaciones. Enumerar los distintos pasos del ajuste de modificaciones. Reservados todos los derechos.Capítulo 5 Modificaciones 113 Resumen del capítulo Objetivos del capítulo Al finalizar este capítulo podrá: • • • • • • • • • • • • 10-07-2009 Describir qué es una modificación. Describir qué se debe tener en cuenta a la hora de implementar modificaciones. Citar las ventajas del Note Assistant. Describir cómo buscar exits de usuario en el sistema y usarlos para ampliar el software de SAP. © 2009 SAP AG.

............................155 Lección: Exit de usuario ......................145 Ejercicio 6: Implementación de modificaciones ..............Capítulo 5: Modificaciones • • TAW12_2 Enumerar los objetos que se deben ajustar y cuándo..................................160 Lección: El Note Assistant..............187 Ejercicio 8: Ajuste de modificaciones (opcional) ......................167 Lección: Ajuste de modificaciones ........................................................189 128 © 2009 SAP AG.... 10-07-2009 ..129 Lección: Realización de modificaciones ............................... Reservados todos los derechos.......................................135 Lección: Asistente de modificaciones ............ Contenido del capítulo Lección: Modificaciones ......................................................180 Ejercicio 7: Ajuste de modificaciones .............. Describir cómo se realiza el ajuste de modificaciones en los sistemas siguientes.........................

Reservados todos los derechos. - Ejemplo empresarial Le gustaría conocer los principios básicos de la modificación. 10-07-2009 © 2009 SAP AG. Se familiarizará con las condiciones básicas en el entorno de modificación.TAW12_2 Lección: 115 Lección: Modificaciones Modificaciones Duración de la lección: 20 Minutos Resumen de la lección En esta lección se explican las modificaciones. Objetivos de la lección Al finalizar esta lección podrá: • • Describir qué es una modificación. Explicar los conceptos básicos en el entorno de modificación. 129 .

estos objetos sólo están disponibles como copias. Reservados todos los derechos. En los sistemas de cliente. 10-07-2009 . Esto se aplica al sistema de desarrollo y a todos los demás sistemas posteriores. 130 © 2009 SAP AG. El “sistema original” de los objetos suministrados por SAP reside en SAP.Capítulo 5: Modificaciones TAW12_2 Modificaciones: Introducción Gráfico 81: Modificaciones: Diagrama general del curso Gráfico 82: Originales y copias Un objeto es original sólo en un sistema.

porque los originales no están en ningún sistema de cliente. si modifica una copia (un objeto fuera de su sistema original). esto no es posible con los objetos SAP. El sistema registra estas modificaciones en una solicitud que contiene tareas del tipo “Desarrollo/Corrección”. Las reparaciones realizadas en objetos propios (por ejemplo. Una reparación de un objeto SAP se llama modificación. los objetos que cree serán originales en su sistema de desarrollo. Atención: Cuando se modifican copias. Sólo debería modificar la versión estándar del sistema SAP si las modificaciones que desea realizar son imprescindibles para optimizar el workflow en su empresa. se debe corregir el original de inmediato. debido a una emergencia en el sistema productivo) también se pueden realizar de inmediato en los originales en el sistema de desarrollo.TAW12_2 Lección: Modificaciones Si escribe sus propias aplicaciones. Por otra parte. Tenga en cuenta además que un buen conocimiento de base de la estructura de la 10-07-2009 © 2009 SAP AG. Gráfico 83: Correcciones y reparaciones El hecho de modificar el original se llama corrección. Tendrá el tipo “Desarrollo/Corrección”. la modificación se registrará en una tarea con el tipo “ Reparación ”. Asigne sus desarrollos a una orden de modificación. Esta solicitud garantiza que los objetos se transportarán desde el sistema de desarrollo a los sistemas siguientes. Sin embargo. 131 . Reservados todos los derechos.

El nuevo objeto que suministra SAP pasa a ser un objeto activo en el Repository de su sistema R/3. Si modifica un objeto SAP y SAP ha suministrado también una nueva versión del mismo objeto. Si desea grabar las modificaciones. recomendamos ajustar sólo la modificación en el sistema de desarrollo. Los objetos del ajuste se podrán transportar luego a los sistemas siguientes. 132 © 2009 SAP AG. Si se han modificado muchos objetos SAP. 10-07-2009 . Para garantizar que el sistema de desarrollo y el sistema siguiente son coherentes. Reservados todos los derechos. aplique un hot package o importe una orden de transporte. Gráfico 84: Modificaciones durante el upgrade Cada vez que realice un upgrade del sistema.Capítulo 5: Modificaciones TAW12_2 aplicación y el flujo son esenciales a la hora de decidir qué tipo de modificaciones se deben realizar en la versión estándar del sistema y cómo se deberían diseñar dichas modificaciones. realice un ajuste de la modificación para los objetos relevantes. se pueden producir retrasos considerables al importar un upgrade. se producirán conflictos. se pueden originar conflictos.

- 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. También puede utilizar sus propias preguntas. 133 .TAW12_2 Lección: Modificaciones Discusión con moderador - Preguntas para la discusión Utilice las siguientes preguntas para que los participantes del curso tomen parte en la discusión.

• Explicar los conceptos básicos en el entorno de modificación.Capítulo 5: Modificaciones TAW12_2 Resumen de la lección Ahora podrá: • Describir qué es una modificación. Reservados todos los derechos. 10-07-2009 . 134 © 2009 SAP AG.

TAW12_2 Lección: 120 Lección: Realización de modificaciones Realización de modificaciones Duración de la lección: 20 Minutos Resumen de la lección En esta unidad se explica qué se debe tener en cuenta a la hora de realizar modificaciones. - Ejemplo empresarial Desea saber qué se debe tener en cuenta a la hora de implementar modificaciones. An additional modification log can also prove very valuable when making modification adjustments. These rules apply irrespective of whether you use the Modification Assistant. Objetivos de la lección Al finalizar esta lección podrá: • Describir qué se debe tener en cuenta a la hora de implementar modificaciones. Adhering to these rules will drastically reduce the amount of work required at upgrade. Reservados todos los derechos. Realización de modificaciones The following slides summarize important guidelines for modifying your system. Emphasize that this slide can only serve as an example. 135 . 10-07-2009 © 2009 SAP AG.

Si el objeto se modifica de nuevo más adelante. las correcciones avanzadas y los objetos cuya modificación se base en la generación automática (por ejemplo. los parámetros de memoria intermedia. Upgrades simplificados.Capítulo 5: Modificaciones TAW12_2 Gráfico 85: Registro de modificaciones en SSCR Un usuario de desarrollo registrado registra las modificaciones en las fuentes de SAP y las modificaciones manuales de objetos del Dictionary ABAP. los objetos de cliente. Una vez registrado un objeto. ¿Qué ventajas le aporta el SSCR (SAP Software Change Registration)? • • • 136 Los errores se solucionan con rapidez y los sistemas modificados vuelven a estar disponibles con rapidez. independientemente de qué desarrollador registrado realice la modificación. Reservados todos los derechos. garantiza que el software estándar de R/3 funcionará con total fiabilidad. A partir de esta información. 10-07-2009 . la clave relacionada se guarda localmente y se copia automáticamente para modificaciones posteriores. Por ahora. no se volverá a preguntar la clave de registro. Esto amplía la disponibilidad de su sistema R/3. los índices de base de datos. Esto. © 2009 SAP AG. El tener que registrar sus modificaciones contribuye a evitar modificaciones accidentales. Son excepciones a este tipo de registro los matchcodes. desde el Customizing). estas claves siguen siendo válidas incluso después de un upgrade de release. Funcionamiento fiable. Los upgrades y los cambios de release resultan mucho más fáciles debido a que el número de modificaciones es menor. a su vez. el servicio de atención al cliente de primera de SAP puede encontrar rápidamente los problemas y solucionarlos. SAP registra todos los objetos modificados.

Después de asignar la tarea. sólo el propietario podrá modificar el objeto. 137 . debe proporcionar la información siguiente al Workbench Organizer: • • Una clave SSCR Una orden de modificación Anteriormente hemos visto cómo obtener una clave SSCR. El objeto no se puede sobrescribir mediante una importación (ni upgrade ni support package). aún puede cancelar la acción. La orden de modificación tiene las funciones siguientes: • • • 10-07-2009 Bloqueo de modificación. © 2009 SAP AG. Versiones. deberá confirmar los cuadros de advertencia siguientes: En este punto.TAW12_2 Lección: Realización de modificaciones Gráfico 86: Realización de una modificación registrada Si desea modificar un objeto de Repository de SAP. Si ahora sigue modificando el objeto. El sistema genera una nueva versión del objeto (véase más adelante). Bloqueo de importación. Reservados todos los derechos. El Workbench Organizer le pedirá que introduzca una orden de modificación como lo haría para sus propios objetos. El objeto se añade automáticamente a una tarea de reparación.

Los objetos y los bloqueos de objeto válidos en la tarea se transfieren de la tarea a la orden de modificación. Después de importar las modificaciones al sistema de calidad. Esto es aplicable tanto a los bloqueos de modificación como a los bloqueos de importación. Los bloqueos en los objetos de la orden de modificación también se liberan. En este punto.Capítulo 5: Modificaciones TAW12_2 Gráfico 87: Modificación finalizada Una vez finalizado el desarrollo. el desarrollador debe probarlas y comprobar el log de importación de la orden. el administrador del sistema puede importarlos a los sistemas siguientes. el bloqueo de importación se transfiere a la orden de modificación. Reservados todos los derechos. los objetos se copian desde la base de datos de R/3 y se guardan en un directorio en el nivel del sistema operativo. Cuando se libera la orden de modificación. el bloqueo de importación sigue en su sitio. se libera la orden de modificación. Una vez completado el proyecto. 10-07-2009 . Sólo el desarrollador puede anular el bloqueo. 138 © 2009 SAP AG. Si el desarrollador confirma la reparación. Si el desarrollador no confirma la reparación al liberar la tarea. debe documentar las modificaciones efectuadas. el programador libera la tarea. A continuación.

Cuando asigne un objeto de Repository a una tarea. Este proceso también se inicia la primera vez que se modifica un objeto SAP. el objeto actual pasará a ser una copia completa. Como ayuda para el ajuste. 10-07-2009 © 2009 SAP AG. se creará una copia completa. 139 . Si vuelve a editar más adelante el objeto de Repository. el sistema comprobará si la versión actual coincide con la copia completa en la base de datos para versiones. se guarda también información sobre si la versión ha sido creada por SAP o por el cliente. el sistema guarda una versión completa de todos los objetos de la orden de modificación para la base de datos para versiones.TAW12_2 Lección: Realización de modificaciones Gráfico 88: Versiones Cuando se libera una orden de modificación. Reservados todos los derechos. y las diferencias entre el objeto nuevo y el anterior se guardarán en la base de datos para versiones como delta regresiva. ya que SAP no suministra versiones de objetos de Repository. Las versiones de un objeto de Repository proporcionan la base para ajustar la modificación. Si no es así.

Reservados todos los derechos. con llamadas de módulo de funciones de cliente en código fuente de programa. Consejo: No olvide usar interfases limitadas cuando encierre funciones específicas de cliente a fin de garantizar un buen control de los datos. o llamadas de subscreen de cliente para campos de pantalla adicionales).Capítulo 5: Modificaciones TAW12_2 Gráfico 89: Factores cruciales para el éxito (1) Encierre el código fuente del cliente en unidades de modularización en vez de insertarlo directamente en párrafos largos de código fuente de SAP (por ejemplo. Gráfico 90: Factores cruciales para el éxito (2) 140 © 2009 SAP AG. 10-07-2009 .

141 . Gráfico 91: Logs de modificación (ejemplo) SAP recomienda guardar una lista de todas las modificaciones realizadas (es decir. véase la diapositiva siguiente). Todas las solicitudes que contengan reparaciones se deben liberar antes de un upgrade o de la importación de un support package. las modificaciones efectuadas a los objetos de Repository en el área de nombres de SAP).) se perderán durante el upgrade. Guarde una lista de todas las modificaciones en su sistema (un log de las modificaciones. Esto puede hacer que se pierda el contenido de algunas tablas. de modo que todas las versiones de cliente relevantes se puedan escribir en la base de datos para versiones (el sistema comparará las versiones durante el ajuste). Las modificaciones que haga en objetos de Dictionary ABAP que pertenezcan a componentes de SAP Base (Workbench ABAP. y el ajuste no es una opción. Estos objetos volverán a su versión anterior. etc. Reservados todos los derechos. 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: Realización de modificaciones Defina una versión estándar válida para toda la empresa para administrar la documentación de código fuente.

..Capítulo 5: Modificaciones TAW12_2 La lista puede contener las columnas siguientes: • • • • • • • • • • 142 Tipo de objeto (programa. válido hasta el release x. 10-07-2009 . Reservados todos los derechos.) Nombre del objeto Rutina (si procede) Área temática (de acuerdo con el diseño de proceso blueprint o el diseño técnico) Número de reparación Fecha de modificación Autor de la modificación ¿Corrección preliminar? (Sí/No) Número de nota de SAP. pantalla.y Entradas previstas para restablecer la modificación durante el ajuste © 2009 SAP AG. status GUI.

TAW12_2 Lección: Realización de modificaciones Discusión con moderador - Preguntas para la discusión Utilice las siguientes preguntas para que los participantes del curso tomen parte en la discusión. También puede utilizar sus propias preguntas. - 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. 143 .

144 © 2009 SAP AG. 10-07-2009 .Capítulo 5: Modificaciones TAW12_2 Resumen de la lección Ahora podrá: • Describir qué se debe tener en cuenta a la hora de implementar modificaciones. Reservados todos los derechos.

Ejemplo empresarial Desea utilizar el Asistente de modificaciones para realizar modificaciones de forma ordenada. y se explica cómo usar estas herramientas. the contents of the modification tables and the source is taken into account. You had to adjust a program when the include was changed by SAP and the customer. Outline the basic principle of the Modification Assistant: To reduce the amount of work when making modification adjustments. the object will appear in the list of objects to be adjusted at adjustment time. Realizar modificaciones especializadas mediante el Asistente de modificaciones. You can simply click the green traffic light. SAP changes the include but not the subroutine. Now. When the LOAD is generated. garantizar que podrá visualizar una lista exacta de las modificaciones más adelante y facilitar los ajustes de las modificaciones. 145 . you had to do a lot manually. only a reasonable amount of work is required when the exact part of the include is changed by SAP and by you. the system determines that the adjustment can be carried out automatically. The Modification Assistant registers the modifications in different tables rather than directly in the source code. Objetivos de la lección Al finalizar esta lección podrá: • • • Explicar cómo funciona el Asistente de modificaciones. Reservados todos los derechos. In the past. As a result. Give the example of a changed subroutine: You changed the subroutine. Elaborar una lista de las modificaciones realizadas mediante el Browser de modificaciones. However.TAW12_2 Lección: 128 Lección: Asistente de modificaciones Asistente de modificaciones Duración de la lección: 20 Minutos Resumen de la lección En esta lección se describe cómo funcionan el Asistente de modificaciones y el Browser de modificaciones. As a result: • Modifications can be reset by deleting the contents of the modification tables • The first version required by the system is created when the modification is saved. 10-07-2009 © 2009 SAP AG.

Las modificaciones sólo se transfieren cuando se genera la carga. y deja sin modificar la fuente original de un objeto. esto se debe a que las modificaciones se registran en una capa distinta. Además de ofrecer una granularidad más precisa. Para ello. se usa una granularidad más precisa para registrar las modificaciones. porque la versión original no se ha modificado. Entre otras cosas.Capítulo 5: Modificaciones TAW12_2 Asistente de modificaciones Gráfico 92: Asistente de modificaciones: Objetivos El Asistente de modificaciones se ha diseñado para facilitar los ajustes de las modificaciones. Gráfico 93: Asistente de modificaciones: Funcionamiento El Asistente de modificaciones registra las modificaciones en un nivel distinto. Esto significa que el objeto ejecutable se genera a partir de componentes del programa SAP original y de las modificaciones. Anteriormente. la granularidad de las modificaciones se limitaba al nivel de programa de include. 10-07-2009 . Reservados todos los derechos. Ahora es posible una granularidad más precisa. y las modificaciones se pueden registrar en los niveles de módulo o subrutina. esto significa que podrá restablecer las modificaciones. 146 © 2009 SAP AG.

el sistema comprobará si hay una nueva versión de dicha subrutina. Esto ha cambiado considerablemente gracias al Asistente de modificación. Si no es así. 10-07-2009 © 2009 SAP AG. hacía falta ajustar la modificación. Reservados todos los derechos. comprende los originales para usuarios del software posteriores. Si SAP suministra una nueva versión del include. El sistema no proporcionaba demasiada ayuda durante el ajuste. las modificaciones se podrán incorporar a la nueva versión automáticamente. Por ejemplo. La modificación se tenía que ajustar línea a línea. si modifica una subrutina. si modificaba un include del cual SAP proporcionaba una nueva versión en un upgrade. subrutina) Ajuste de la modificación en el nivel de módulo (“exit de modificaciones”) En el pasado. Gráfico 94: Asistente de modificaciones: Capas del software La versión original de cada capa del software. Ahora las modificaciones se registran con una granularidad más precisa.TAW12_2 Lección: Asistente de modificaciones El antes y el después de los ajustes de las modificaciones • ANTES: – – – • Granularidad: Origen de include Ajuste de la modificación línea a línea Cada modificación se tenía que incluir manualmente en la nueva versión de SAP (mediante la función de cortar y pegar) AHORA (con el Asistente de modificaciones): – – Granularidad: Módulo (por ejemplo. más la modificación actual. 147 . el resto del include no se modifica.

Esto es aplicable tanto al layout como a la lógica de proceso. todo bajo el control del Asistente de modificaciones. puede usar el modo de modificación para modificar el código fuente. En este modo sólo hay disponible una serie limitada de funciones. el Asistente de modificaciones registra también la creación de appends de tabla. 10-07-2009 . También se registran las modificaciones en el Screen Painter. El Asistente de modificaciones registra también las modificaciones en el Menu Painter y en los elementos de texto. Reservados todos los derechos. además de añadir nuevos módulos de funciones a un grupo de funciones existente. sustituir o comentar el código fuente.Capítulo 5: Modificaciones TAW12_2 Asistente de modificaciones: Herramientas admitidas • Editor ABAP • – Modo de modificación Screen Painter • • • • – Disposición – Lógica de proceso Menu Painter Elementos de texto Generador de clases Function Builder • – Agregación de módulos de funciones – Ampliaciones compatibles de interfase Dictionary • – Las estructuras append se registran – Elementos de datos: Modificación de etiquetas de campo Documentación – Sustitución de objetos de documentación El Asistente de modificaciones es compatible con las herramientas clave del Workbench ABAP: En el Editor ABAP. Puede añadir. Para evitar conflictos durante el upgrade. 148 © 2009 SAP AG.

Una vez desactivado. 149 .TAW12_2 Lección: Asistente de modificaciones Gráfico 95: Asistente de modificaciones: Requisitos Si desea modificar un objeto SAP. Puede desactivar el Asistente de modificaciones para objetos individuales del Repository. Puede activar o desactivar el Asistente de modificaciones para todo el sistema R/3 mediante el parámetro de perfil eu/controlled_modification. Show the icons: The modification overview and the Restore Original features are important. 10-07-2009 © 2009 SAP AG. Modify one of your programs as an example. SAP recomienda trabajar siempre con el Asistente de modificaciones. Demonstrate the features of the Modification Assistant: Explain the icons (although they are more or less self explanatory). el sistema deja de usar la granularidad precisa que se usa en el Asistente de modificaciones. This enables the system to undo a modification. Reservados todos los derechos. En el editor sólo hay disponibles funciones limitadas. debe proporcionar la información siguiente: • • Una clave SSCR Una orden de modificación El sistema le informa de que el objeto es controlado por el Asistente de modificaciones. Explain what happens: Tell your students that a table is used to log all modifications and that the modifications themselves are stored in another table separately from the source code. Use the ABAP Editor to modify the source code.

Si desea sustituir varias líneas. Seleccione esta función para visualizar un resumen de todas las modificaciones de este objeto. And so on. Borrar. y aparecerá otra línea en la que se podrá introducir códigos. 10-07-2009 . Sustituir. Puede acceder a ellas mediante los pulsadores adecuados. en el Editor ABAP puede: • • • • • Insertar.Capítulo 5: Modificaciones TAW12_2 Gráfico 96: Iconos del Asistente de modificaciones En el modo de modificación no se pueden usar todas las funciones normales de la herramienta con la que está trabajando. Show how to create a new text for a data element: There are two alternatives. Modify a program. Se añaden comentarios a las líneas. Visualizar resumen de modificaciones. Deshace todas las modificaciones efectuadas en este objeto. Show modification in the editor. Por ejemplo. Reservados todos los derechos. Se añadirá un comentario a la línea correspondiente. Do this in parallel to presenting the slides. 150 © 2009 SAP AG. Use one of your demo programs. Sitúe el cursor en una línea y seleccione “Sustituir”. Deshacer modificaciones. márquelas primero como un bloque. Show screen modifications. Seleccione una línea o un bloque de código fuente. El sistema genera un framework de líneas de comentario en el que se puede introducir el código fuente.

y un número usado para la administración interna. El Asistente de modificaciones genera automáticamente un framework de líneas de comentarios que describen la acción.TAW12_2 Lección: Asistente de modificaciones Gráfico 97: Asistente de modificaciones: Ejemplo de Editor ABAP En el gráfico se muestran los resultados de las modificaciones efectuadas con el Asistente de modificaciones. 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. 151 . El comentario contiene también el número de la orden de modificación a la que se ha asignado la modificación.

152 © 2009 SAP AG. Esto corresponde a la estructura usada por el Asistente de modificaciones para registrar las modificaciones.Capítulo 5: Modificaciones TAW12_2 Gráfico 98: Resumen de modificaciones El icono “Resumen de modificaciones” le ofrece un resumen de las modificaciones efectuadas en el programa actual. Reservados todos los derechos. 10-07-2009 . La visualización está desglosada en las diversas unidades de modularización.

Show the most important features of the Modification Browser: Find the objects you modified recently. and so on. El registro de las modificaciones se borra. sitúe el cursor en ella. Seleccione el pulsador para deshacerla. Undo a modification. 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. No es posible restablecer la modificación borrada. 153 .TAW12_2 Lección: Asistente de modificaciones Gráfico 99: Restablecimiento del original Para deshacer una modificación.

El Browser de modificaciones visualiza la lista de aciertos en forma de árbol. se puede usar también el Browser de modificaciones para deshacer grupos enteros de modificaciones.) Además de las sencillas funciones de visualización. Los objetos se organizan por: • • Tipo de modificación (con/sin asistente) Tipo de objeto (PROG. DOMA. DTEL. Para ello. De este modo se puede buscar modificaciones en un área concreta. En la pantalla inicial del Browser de modificaciones se puede delimitar la selección en función de diversos criterios. seleccione el subárbol que desee y seleccione el pulsador “Restablecer original”. 10-07-2009 .. 154 © 2009 SAP AG. El Browser de modificaciones diferencia entre las modificaciones efectuadas con y sin el Browser de modificaciones. TABL. Reservados todos los derechos.Capítulo 5: Modificaciones TAW12_2 Gráfico 100: Browser de modificaciones El Browser de modificaciones proporciona un resumen de todos los objetos modificados en el sistema..

El Asistente de modificaciones no permite realizar ciertas modificaciones. Modifique el layout de la pantalla 0100: Inserte un marco alrededor de los tres campos de entrada. 155 . Visualice el contador en la última columna de la lista. 3. En raras ocasiones. Esto obliga a insertar correcciones antes de poder importar el support package correspondiente. 1. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. Si desea implementarlas de todos modos. Reservados todos los derechos. 2.TAW12_2 137 Lección: Asistente de modificaciones Ejercicio 6: Implementación de modificaciones Duración del ejercicio: 30 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Realizar modificaciones mediante el Asistente de modificaciones • Implementar modificaciones no registradas Ejemplo empresarial Desea implementar más funciones además de la gran variedad de funciones en R/3. Tarea 1: Modificar objetos R/3. Use el Asistente de modificaciones si es posible. Cree una nueva variable para contar los registros de datos. Amplíe la cabecera de forma que la columna con el nombre del cliente también tenga cabecera. se suministran funciones incorrectas. Lea los campos LUGGWEIGHT y WUNIT en la tabla SBOOK. A continuación se especifica qué objetos se deben modificar: Modifique el programa SAPBC425_BOOKING_##. Cree un pulsador y asígnele el código de función MORE. y visualícelos en la lista. puede desactivar el Asistente de modificaciones. Tarea 2: Modifique el programa SAPBC425_FLIGHT##. 1.

© 2009 SAP AG. 10-07-2009 . 156 Verificar las modificaciones en el Browser de modificaciones. Modifique las etiquetas de campo así: Breve: “Cía. 2. Cree un texto informativo. Media: “Compañía aérea”. 1.Capítulo 5: Modificaciones TAW12_2 Tarea 3: Modifique el elemento de datos S_CARRID##. Reservados todos los derechos. aérea”. Modifique la documentación para este elemento de datos. Tarea 4: 1.

Visualice los campos en la subrutina data_output.TAW12_2 Lección: Asistente de modificaciones Solución 6: Implementación de modificaciones Tarea 1: Modificar objetos R/3. a) 2. Como alternativa puede implementar esta función en la ampliación. y visualícelos en la lista. Use el Asistente de modificaciones si es posible. Cree un pulsador y asígnele el código de función MORE. Modifique el layout de la pantalla 0100: Inserte un marco alrededor de los tres campos de entrada. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. con lo que no harían falta modificaciones. Visualice el contador también. Cree una nueva variable para contar los registros de datos. 1. a) Use el Screen Painter para modificar el layout de la pantalla 0100. Visualice el contador en la última columna de la lista. Reservados todos los derechos. a) Lea los campos adicionales LUGGWEIGHT y WUNIT en la tabla SBOOK. 157 . Use la función de inserción en el Asistente de modificaciones. Puede modificar la cabecera directamente desde la lista (Sistema → Lista → Cabecera de lista) o en el Editor. Lo ideal sería limitar las modificaciones al ámbito local en la subrutina data_output. A continuación se especifica qué objetos se deben modificar: Modifique el programa SAPBC425_BOOKING_##. Tarea 2: Modifique el programa SAPBC425_FLIGHT##. Lea los campos LUGGWEIGHT y WUNIT en la tabla SBOOK. Añada dos campos a la sentencia SELECT. y visualícelos en la lista. a) 3. Puede crear una nueva variable directamente en el programa SAP. 1. Amplíe la cabecera de forma que la columna con el nombre del cliente también tenga cabecera.

Capítulo 5: Modificaciones TAW12_2 Tarea 3: Modifique el elemento de datos S_CARRID##. Modifique las etiquetas de campo así: Breve: “Cía. Media: “Compañía aérea”. 1. Limite la selección mediante el nombre de usuario o la tarea/orden de modificación. © 2009 SAP AG. Sitúe el cursor en el objeto correspondiente y seleccione el icono de modificación. Modifique la documentación para este elemento de datos. Reservados todos los derechos. a) 158 Para verificar la modificación. Puede indicar un texto nuevo en la siguiente ventana de diálogo. a) Seleccione el pulsador “Documentación” e introduzca un texto nuevo. Tarea 4: 1. Cree un texto informativo. 10-07-2009 . aérea”. Llame la transacción de actualización para elementos de datos. Verificar las modificaciones en el Browser de modificaciones. seleccione el Browser de modificaciones (transacción SE95). a) 2.

159 . Reservados todos los derechos. • Realizar modificaciones especializadas mediante el Asistente de modificaciones.TAW12_2 Lección: Asistente de modificaciones Resumen de la lección Ahora podrá: • Explicar cómo funciona el Asistente de modificaciones. 10-07-2009 © 2009 SAP AG. • Elaborar una lista de las modificaciones realizadas mediante el Browser de modificaciones.

Briefly explain to participants what user exits are and what they are used for.Capítulo 5: Modificaciones Lección: 142 TAW12_2 Exit de usuario Duración de la lección: 10 Minutos Resumen de la lección En esta lección se explica cómo funcionan los exits de usuario. Although there should be no new user exits in an R/3 System. Objetivos de la lección Al finalizar esta lección podrá: • • Describir qué son los exits de usuario y cómo funcionan. 10-07-2009 . Ejemplo empresarial Desea saber cómo buscar exits de usuario en el sistema y usarlos para ampliar el software de SAP. Reservados todos los derechos. a wide range are still available. Describir cómo buscar exits de usuario en el sistema y usarlos para ampliar el software de SAP. User exits are a long-standing method of enhancing an SAP System. 160 © 2009 SAP AG. cómo se buscan y cómo se usan para ampliar las funciones.

no existen diferencias. Estos programas sólo se suministran una vez. técnicamente.TAW12_2 Lección: Exit de usuario Exits de usuario Gráfico 101: Exit de usuario: Estructura de un modulpool de SAP In the first step. la convención para fijar nombres según la cual las tres últimas letras del nombre del programa de include identifican su contenido. es la misma. Esto resulta especialmente beneficioso a la hora de entender el programa con mayor facilidad. La organización es parecida a la de los grupos de funciones. El programa principal. Show your students where the use of user exits is described in the Implementation Guide (Sales and Distribution -> System Modifications). explain how a module pool is built. Provide your students with an example: Demonstrate a program that contains user exits (for example SAPMV45A). Reservados todos los derechos. 10-07-2009 © 2009 SAP AG. por lo general. 161 . Un modulpool está organizado como un conjunto de programas de include. Describe the distinguishing features of a user exit. Los programas descritos como programas de include "especiales" en la figura anterior sólo son programas de include. contiene las sentencias de include para todos los programas de include pertenecientes al modulpool. En concreto.

Si en un nuevo release se deben suministrar exits de usuario nuevos. se crearán en un nuevo programa de include. 162 © 2009 SAP AG. La finalidad original de los exits de usuario era permitir a los usuarios evitar las dificultades a la hora de ajustar las modificaciones. Reservados todos los derechos. Usar un exit de usuario es una modificación. porque obliga a modificar objetos en el área de nombres de SAP. Normalmente se usan variables globales.Capítulo 5: Modificaciones TAW12_2 Gráfico 102: Exit de usuario: Implementación Los exits de usuario son un tipo de ampliación del sistema y se desarrollaron inicialmente para el componente Comercial (SD). Las llamadas para estas subrutinas se han implementado ya en el programa. Los desarrolladores de SAP crean un include especial en un modulpool. 10-07-2009 . Estos includes contienen una o varias subrutinas que cumplen la convención interna para fijar nombres userexit_<nombre>. SAP nunca modifica los includes creados de este modo una vez suministrados.

Ejemplo: Programa SAPMV45A Include MV45AFZB Esta convención para fijar nombres garantiza que los desarrolladores de SAP no tocarán este include en el futuro. Si SAP suministra exits de usuario nuevos con un nuevo release. Reservados todos los derechos. 163 .TAW12_2 Lección: Exit de usuario Gráfico 103: Exit de usuario: Ejemplo Los exits de usuario son en realidad subrutinas en blanco que le proporcionan los desarrolladores de SAP. estarán empaquetados en nuevos includes que cumplan la misma convención para fijar nombres. La finalidad de este tipo de sistema es mantener las modificaciones al margen del código fuente del programa y guardarlas en programas de include. Por ello. los includes de este tipo no se ajustan durante los ajustes de la modificación. Las dos últimas letras del nombre del include hacen referencia al include que debería usar el cliente: “Z” suele ser una de ellas. 10-07-2009 © 2009 SAP AG. Puede completarlas con su propio código fuente. los desarrolladores de SAP crean varios includes que cumplen las convenciones para fijar nombres para includes de programas y grupos de funciones. Para ello.

El gráfico anterior describe cómo se puede hacer.Capítulo 5: Modificaciones TAW12_2 Gráfico 104: Exits de usuario: Buscar Encontrará una lista de algunos de los exits de usuario disponibles en la Guía de implementación de referencia de SAP. 164 © 2009 SAP AG. Siga los pasos que se describen en la Guía de implementación. También puede buscar exits de usuario para programas específicos. En ella encontrará también documentación que explica por qué los desarrolladores de SAP han creado un exit de usuario concreto. Reservados todos los derechos. 10-07-2009 .

También puede utilizar sus propias preguntas. - 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: Exit de usuario Discusión con moderador - Preguntas para la discusión Utilice las siguientes preguntas para que los participantes del curso tomen parte en la discusión. Reservados todos los derechos. 165 .

• Describir cómo buscar exits de usuario en el sistema y usarlos para ampliar el software de SAP. 166 © 2009 SAP AG. 10-07-2009 .Capítulo 5: Modificaciones TAW12_2 Resumen de la lección Ahora podrá: • Describir qué son los exits de usuario y cómo funcionan. Reservados todos los derechos.

Citar las ventajas del Note Assistant. 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: 147 Lección: El Note Assistant El Note Assistant Duración de la lección: 30 Minutos Resumen de la lección En esta lección se explica cómo usar el Note Assistant. Usar el Note Assistant para ajustar las correcciones implementadas mediante notas SAP. • Dependencies between SAP Notes are automatically recognized. • Modification adjustment is supported. Customers also had to request an SSCR key before implementing SAP Notes. que permite instalar notas SAP cómodamente. All this is much easier with the Note Assistant: • No SSCR key is needed. Otra ventaja de Note Assistant es que reconoce las dependencias entre notas y facilita los ajustes. Without the Note Assistant. 167 . Reservados todos los derechos. • Validity is automatically tested. • Implementation support due to usage of the Modification Assistant. The Note Assistant helps your customers to implement corrections contained in SAP Notes. Objetivos de la lección Al finalizar esta lección podrá: • • • Usar el Note Assistant para implementar correcciones del código fuente en un sistema SAP. corrections had to be adjusted manually after you implemented a Support Package or upgrade.

El Note Assistant usa el Asistente de modificaciones para implementar las correcciones de la nota en el sistema automáticamente. El Note Assistant se usa para compensar la mayoría de los inconvenientes mencionados anteriormente. Los desarrolladores tenían que interpretar la nota para saber si la corrección de errores en el sistema comportaba dependencias. el Note Assistant le pedirá que las importe. Si no es así. Además del riesgo de errores. Reconoce automáticamente las dependencias respecto a otras notas. basta con seleccionar un pulsador para anular la corrección. Reservados todos los derechos. había que implementar manualmente todas las notas SAP que requerían ajustes en objetos del sistema SAP. 168 © 2009 SAP AG. No hace falta introducir ninguna clave de registro.Capítulo 5: Modificaciones TAW12_2 Ejemplo empresarial El Note Assistant Gráfico 105: El Note Assistant: Principios Antes de introducir el Note Assistant. las notas SAP sólo son válidas durante un periodo concreto de tiempo. Si las notas no se han implementado aún en el sistema. la corrección de error implementada se tenía que comparar manualmente durante la importación de support packages o upgrades. Finalmente. este procedimiento presentaba otros inconvenientes: Para ajustar manualmente un objeto SAP se necesita especificar una clave de registro para el objeto. el sistema verifica si las correcciones contenidas en la nota SAP siguen siendo válidas. Finalmente. 10-07-2009 . Cuando se implementan support packages y upgrades.

Se detectan las notas obsoletas en el release actual. marca la nota como obsoleta. no se ha diseñado para sustituir la implementación de support packages. 169 . lo que permite transferir fácilmente el objeto a la versión estándar del sistema. con lo que se reduce considerablemente el riesgo de error. Consejo: El Note Assistant permite implementar correcciones individuales del código fuente con facilidad. Las modificaciones implementadas en el objeto que se debe corregir se registran y. estos objetos se identifican durante el ajuste de la modificación. También determina si un error descrito en una nota se ha eliminado ya en un support package y. El Note Assistant ofrece numerosas ventajas. en consecuencia. no hace falta registrar los objetos que se deben corregir en el SAP Software Change Registration (SSCR). Sin embargo. Las notas se implementan en una categoría separada durante el ajuste de las modificaciones posterior a la implementación del upgrade o los support packages. Reservados todos los derechos. Normalmente implementa estas correcciones automáticamente. lo que significa que no hace falta importarlas manualmente. Además de implementar automáticamente las correcciones del código fuente sin una clave SSCR. el asistente reconoce las dependencias entre notas distintas. Además. Una característica útil del Note Assistant es el hecho de que permite visualizar un resumen de todas las notas implementadas en el sistema. 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: El Note Assistant Gráfico 106: El Note Assistant: Ventajas El Note Assistant le ayuda a implementar correcciones del código fuente en su sistema SAP. en caso afirmativo.

se han implementado o están obsoletas.Capítulo 5: Modificaciones TAW12_2 Gráfico 107: El Note Assistant: Etapas de trabajo Mediante el Note Assistant se puede descargar las notas SAP existentes en el SAP Service Marketplace. Después de leer atentamente la nota. si es así. 170 © 2009 SAP AG. Mediante la especificación de status se puede identificar qué notas SAP se pueden implementar. También incluye un enlace al Browser de modificaciones que ofrece un resumen de todos los objetos corregidos con una nota SAP. puede implementarla siguiendo las instrucciones de la corrección. Si se detectan conflictos durante la implementación. por ejemplo. puede implementar la corrección manualmente mediante una versión especial del editor split screen. El Browser de notas proporciona un resumen de todas las notas implementadas en el sistema. porque el Note Assistant no encuentra el bloque de contexto. El Note Assistant determina si la nota se puede implementar automáticamente y. se visualiza un semáforo en verde junto al objeto que se debe implementar. Reservados todos los derechos. 10-07-2009 .

Reservados todos los derechos. En el ejemplo anterior se incluye también una nota nueva señalada como obsoleta y no se puede implementar. Aparecerá una lista de las notas asignadas a distintos nodos. Las notas que se pueden implementar se señalan con el indicador correspondiente (vaya al acceso vía menús Utilidades → Color para ver el significado de los distintos iconos).TAW12_2 Lección: El Note Assistant Gráfico 108: El Note Assistant: Pool de trabajo Introduzca la transacción SNOTE en el campo de comandos. 171 . En esta pantalla se visualiza lo siguiente: • • • Notas que usted es responsable de editar Todas las notas nuevas Todas las notas con un status incoherente . 10-07-2009 © 2009 SAP AG. o a que el periodo de validez no coincide con el release del sistema y el nivel de support package. Esto se debe a que no hay instrucciones para la corrección (la nota es sólo informativa).

Cuando se realiza un upload de una nota. primero hay que descargar la nota desde el SAP Service Marketplace y grabarla en la unidad local del PC. 10-07-2009 . Cuando se descarga una nota. Reservados todos los derechos. Luego hay que realizar un upload de la nota mediante una transferencia de archivos con el Note Assistant. Puede usar una conexión RFC (descarga de nota) o una transferencia de archivo (upload de nota). se puede cargar directamente desde el Front end SAPNet – R/3 a su sistema mediante el Note Assistant.Capítulo 5: Modificaciones TAW12_2 Gráfico 109: El Note Assistant: Carga de una nota SAP Puede cargar notas SAP desde el SAP Service Marketplace o desde el Front end SAPNet – R/3. 172 © 2009 SAP AG.

Reservados todos los derechos. Si no se han registrado aún notas imprescindibles en el sistema. el Note Assistant enviará primero una lista de las notas que se deben implementar. puede implementarla. 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: El Note Assistant Gráfico 110: El Note Assistant: Browser de notas Gráfico 111: El Note Assistant: Implementación de una nota SAP Después de leer atentamente la nota. El sistema comprueba automáticamente que se hayan cumplido los requisitos previos y si existen dependencias respecto a otras notas. 173 .

174 © 2009 SAP AG. Visualiza las notas seleccionadas con todas las notas adicionales en cola. el Note Assistant determinará las notas imprescindibles durante la implementación y las importará a su sistema. Reservados todos los derechos. 10-07-2009 .Capítulo 5: Modificaciones TAW12_2 Note Assistant: Características adicionales • • Editor split screen Diversas opciones de registro en log: • – Visualización del status de implementación – Log de acciones Anulación de implementación de nota Gráfico 112: El Note Assistant: Notas con dependencias Si para implementar una nota hace falta implementar otra antes. Las notas se deben implementar siguiendo un orden especificado.

TAW12_2 Lección: El Note Assistant Cuenta con las opciones siguientes: • • • Implementar varias notas a la vez. El sistema implementará las notas especificadas por separado. Gráfico 113: El Note Assistant: Ajuste de modificaciones 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. Release your change request. Puede realizar un seguimiento detallado de las relaciones de pertenencia entre las modificaciones del código fuente y las notas especificadas. First. Si selecciona esta opción. You can modify program SAPBC426_00 and program SAPMBC426_00 as mentioned in the exercises. Now. you can implement Note 427423000 to show the splitscreen editor. El sistema no implementa ninguna corrección del código fuente. una tras otra. el sistema implementará todas las notas especificadas que pueda. Implementar cada nota por separado. You can use the Notes in the optional exercises for this topic. El sistema implementa estas notas por separado para que el usuario pueda ajustar sus modificaciones. puede que el sistema no pueda implementar algunas modificaciones. 175 . Show how to implement a Note. Cancelar implementación de nota. y cambiar la modificación del código fuente si fuera necesario. demonstrate the implementation of Note 427325000. Si los includes relevantes contienen sus propias modificaciones. El sistema puede implementar varias notas a la vez si se pueden transferir todas las correcciones desde las notas sin tener que realizar modificaciones. Then disassemble this Note and implement Note 427706000.

Reservados todos los derechos. mientras que las otras siguen siendo válidas. Cuando implementa el support package. A continuación deberá implementar de nuevo estas correcciones del código fuente. © 2009 SAP AG. El sistema visualiza un semáforo ámbar para señalar estas notas durante el ajuste de las modificaciones (transacción SPAU). que se da en contadas ocasiones. aunque partes de la misma están incluidas en el support package (semáforo en verde). lo que indica que son obsoletas. Una nota contiene varias instrucciones de corrección con periodos de validez distintos. pero no está incluida en el support package (semáforo en ámbar). estas notas se visualizan con un semáforo apagado. En este caso. El sistema comprueba si las correcciones ya implementadas mediante una nota SAP se han sobrescrito en un support package que no incluya estas correcciones. La nota se ha implementado.Capítulo 5: Modificaciones TAW12_2 Un support package contiene un conjunto de correcciones de errores. Después de implementar un support package. Creación manual de notas SAP • Programa SCWN_REGISTER_NOTES – – • – Se verifica la validez – Se verifica la implementación Ventajas: – – – 176 Introducir notas Se cargan notas Visualizar en el Browser de modificaciones Las dependencias están bien especificadas Durante el ajuste de las modificaciones. Hay que restablecer los objetos relevantes al estado de la versión original de SAP. Durante el ajuste de las modificaciones. 10-07-2009 . que indica que se tienen que volver a implementar. el sistema verifica automáticamente si se ha implementado ya una nota que contenga correcciones individuales del support package. Cada corrección incluida en un support package se documenta en una nota SAP. por ejemplo. En el pool de trabajo estas notas se visualizan con el status Inconsistente. La nota SAP sigue estando implementada. una instrucción de corrección pasa a ser obsoleta. pueden darse los escenarios siguientes: • • • La corrección se ha implementado mediante una nota SAP y está incluida en un support package (el semáforo está apagado): Cuando se implementa un support package. las correcciones están en la categoría Correcciones de nota. Puede importar support packages a su sistema sólo como paquete completo y sólo siguiendo un orden especificado. la nota se visualiza acompañada de un semáforo en verde.

podrá informar al Note Assistant retroactivamente de ello. y esa nota es imprescindible para otra nota SAP que desea implementar con el Note Assistant. El sistema determina si estas notas se deben volver a implementar o se deben restablecer a su estado original. El registro ofrece las ventajas siguientes: • • • Todas las notas SAP implementadas en su sistema se visualizan en el Browser de notas. Reservados todos los derechos.TAW12_2 Lección: El Note Assistant Si ya ha implementado notas SAP antes de instalar el Note Assistant. inicie el programa SCWN_REGISTER_NOTES. porque el Note Assistant no puede detectar automáticamente si se ha implementado una nota manualmente en el sistema sin el Note Assistant. 10-07-2009 © 2009 SAP AG. Esto es importante. Durante el ajuste de las modificaciones. el asistente detectará que la nota imprescindible se ha implementado ya y no le pedirá que vuelva a implementarla. las notas SAP implementadas manualmente se visualizarán también en la categoría Correcciones de nota para support packages o upgrades que se implementarán más adelante. Si se ha implementado una nota SAP manualmente sin el Note Assistant. El sistema carga las notas SAP y verifica si son válidas para su release y el nivel del support package. Nota: Para registrar notas manualmente. El programa verifica también si las notas se han registrado ya como implementadas en el Note Assistant. introduzca los números de las notas SAP que se deben registrar como plenamente implementadas. 177 . En la pantalla de selección que aparece.

Capítulo 5: Modificaciones TAW12_2 Discusión con moderador Preguntas para la discusión Utilice las siguientes preguntas para que los participantes del curso tomen parte en la discusión. 178 © 2009 SAP AG. Reservados todos los derechos. 10-07-2009 . También puede utilizar sus propias preguntas.

TAW12_2 Lección: El Note Assistant Resumen de la lección Ahora podrá: • Usar el Note Assistant para implementar correcciones del código fuente en un sistema SAP. 10-07-2009 © 2009 SAP AG. • Usar el Note Assistant para ajustar las correcciones implementadas mediante notas SAP. Reservados todos los derechos. 179 . • Citar las ventajas del Note Assistant.

This does not include logical databases. match codes. Objetivos de la lección Al finalizar esta lección podrá: • • • Enumerar los distintos pasos del ajuste de modificaciones. Ajuste de modificaciones Gráfico 114: Objetos para el ajuste 180 © 2009 SAP AG. or table indexes. Describir cómo se realiza el ajuste de modificaciones en los sistemas siguientes. 10-07-2009 . Make sure that your students know that only objects for which they can make versions can be adjusted. Enumerar los objetos que se deben ajustar y cuándo. Ejemplo empresarial Desea ajustar correctamente las modificaciones después de haber implementado un upgrade/support package. number range objects. Reservados todos los derechos.Capítulo 5: Modificaciones Lección: 158 TAW12_2 Ajuste de modificaciones Duración de la lección: 30 Minutos Resumen de la lección En esta lección aprenderá a implementar un ajuste de modificaciones.

tendrá que volver a aplicar una clave SSCR por cada objeto que desee ajustar. La intersección de los dos conjuntos es el conjunto de objetos que se deben ajustar cuanto se importa un upgrade o un support package. Durante el ajuste se pueden usar las transacciones SPDD y SPAU. Únicamente hay que ajustar los objetos de SAP modificados. La transacción SPAU determina qué objetos se han modificado e importado durante el upgrade actual. Gráfico 115: Ajuste de modificaciones: SPDD y SPAU El ajuste de las modificaciones compara los objetos de Repository ABAP antes del upgrade (versión anterior) con los objetos correspondientes después del upgrade (nueva versión). Después de 30 días. Después de un upgrade. Sólo ha añadido objetos de cliente a su sistema. tiene 30 días para usar la transacción SPAU. No hace falta llamar la transacción SPDD para ajustar los objetos del Dictionary si: • • No se han realizado modificaciones en objetos estándar de SAP en el Dictionary. Todos los objetos del Repository ABAP se ajustan mediante la transacción SPAU.TAW12_2 Lección: Ajuste de modificaciones El conjunto de objetos para el ajuste se deriva del conjunto de objetos nuevos suministrado por SAP en un nuevo release. El programa de upgrade R3up le dice que inicie la transacción una vez completado el upgrade. 181 . 10-07-2009 © 2009 SAP AG. Éste se compara con el conjunto de objetos modificados. Reservados todos los derechos. El ajuste de las modificaciones permite transferir las modificaciones efectuadas en su sistema a su nuevo release R/3.

A partir de este punto no se han generado más objetos en el Dictionary ABAP. tablas transparentes. Reservados todos los derechos. pool y tablas cluster. This means that all objects that can be adjusted using SPAU should be assigned to the same change request. es importante que las modificaciones de cliente efectuadas en los tipos de objeto detallados anteriormente se realicen antes de que se generen. match codes. 10-07-2009 . Para garantizar que no se pierdan datos. or table indexes. Durante el ajuste de las modificaciones. number range objects. Show the relevant menu paths. Explain the individual buttons available on the interfaces of the adjustment tools.Capítulo 5: Modificaciones TAW12_2 Gráfico 116: Ajuste de modificaciones: Objetos Introduce transactions SPDD and SPAU. This does not include logical databases. Explain that the upgrade tool can include one change request for ABAP Dictionary objects and one for all other Repository objects. 182 © 2009 SAP AG. use la transacción SPDD para ajustar los siguientes objetos del Dictionary ABAP: • • • Dominios Elementos de datos Tablas (estructuras. en caso contrario. se podrían perder datos. junto con sus opciones técnicas) Estos tres tipos de objeto se ajustan directamente después de haber importado los objetos del Dictionary (antes de la importación principal). Make sure that your students know that only objects for which they can make versions can be adjusted.

Cuando se realiza el upgrade de sistemas R/3 adicionales. Puede utilizar la transacción SPAU para ajustar los tipos de objeto siguientes: • Programas ABAP. pantallas. El usuario decide qué ajustes desea aceptar en los sistemas adicionales. objetos matchcode. interfases (menús). Gráfico 117: Transporte de ajustes entre sistemas Durante el ajuste de las modificaciones. como objetos de bloqueo. que luego se integran en el upgrade actual. Reservados todos los derechos. vistas y objetos de bloqueo. Después el sistema verifica 10-07-2009 © 2009 SAP AG. no pueden provocar pérdidas de datos. De este modo se garantiza que sólo habrá que realizar todo el trabajo de ajuste real en el sistema de desarrollo. estos objetos del Dictionary ABAP se ajustan mediante la transacción SPAU después de haber completado la importación principal y la generación de objetos. debería usar dos órdenes de modificación distintas para implementar las modificaciones efectuadas: una para ajustes SPDD y otra para ajustes SPAU. En consecuencia. matchcodes o vistas. todos los ajustes exportados con el primer upgrade del sistema se visualizarán durante la etapa ADJUSTCHK. Estas órdenes de modificación se transportan luego a los sistemas R/3 siguientes que se desea ajustar.TAW12_2 Lección: Ajuste de modificaciones Las modificaciones de otros objetos del Dictionary ABAP. 183 .

Esto se puede garantizar. Consejo: Para que este proceso surta efecto. haciendo las modificaciones primero en el sistema de desarrollo y transportándolas luego a los sistemas siguientes antes de realizar el upgrade del sistema de desarrollo. Gráfico 118: Ajuste de modificaciones: Pantalla inicial Cuando se inicia el ajuste de las modificaciones (transacción SPAU) se puede delimitar la lista de aciertos en una pantalla de selección. por ejemplo. Puede decidir si desea visualizar todos los objetos que se deben ajustar o sólo los que aún no se han procesado. También se puede garantizar que todos los sistemas de la infraestructura tengan el mismo status creando el sistema de desarrollo antes del upgrade como copia del sistema productivo y no volviendo a modificar el sistema productivo a partir de ese momento. En caso afirmativo. es importante que todos los sistemas de la infraestructura tengan el mismo status.Capítulo 5: Modificaciones TAW12_2 si las órdenes de modificación creadas durante el primer upgrade del sistema cubren todas las modificaciones en el sistema R/3 actual. 10-07-2009 . Reservados todos los derechos. Puede utilizar los criterios siguientes para delimitar la selección: • • • 184 Modificado por Clase de desarrollo Números de orden/tarea © 2009 SAP AG. no se realizarán ajustes durante el upgrade actual.

Los objetos ajustados se señalan con una marca de visto. Even if you do not implement your Support Package. Semiautomático. Las modificaciones se pueden adoptar automáticamente. Gráfico 119: Iconos del Asistente de modificaciones Los iconos delante de cada objeto que se debe ajustar indican cómo se pueden ajustar. Reservados todos los derechos. Manualmente. Puede usarlo para transferir las modificaciones. 185 . Las herramientas individuales le ayudan durante el ajuste. Procese las modificaciones sin ayuda específica por parte del sistema. use “Restablecer original”. Cuando se ajustan los programas. there are enough programs to use for demonstration purposes. Si desea usar la nueva versión estándar de SAP. En este caso. seleccione el icono relevante o seleccione la entrada relevante en el menú. Para usar esta opción. el ajuste de las modificaciones permite pasar directamente a la herramienta correspondiente. La lista se ordena por: • • Con/Sin Asistente de modificaciones Tipo de objeto Show how modification adjustments work. El sistema no señala los conflictos. en el futuro no tendrá que hacer más ajustes. Se pueden usar los métodos de ajuste siguientes: • • • Automático. se llama el editor split screen. 10-07-2009 © 2009 SAP AG. Si lo hace.TAW12_2 Lección: Ajuste de modificaciones El sistema visualiza una lista de los objetos que se deben ajustar.

TAW12_2 10-07-2009 . Reservados todos los derechos.Capítulo 5: Modificaciones 186 © 2009 SAP AG.

© 2009 SAP AG.TAW12_2 165 Lección: Ajuste de modificaciones Ejercicio 7: Ajuste de modificaciones Duración del ejercicio: 20 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Ajustar las modificaciones. 187 . Tarea: Ajuste de modificaciones 1. 10-07-2009 Ajuste las modificaciones que realice en el sistema a los nuevos objetos importados al sistema. Reservados todos los derechos. Ejemplo empresarial Tiene que ajustar las modificaciones efectuadas en el sistema después de implementar un support package o un upgrade.

Reservados todos los derechos. Llame la transacción SPAU desde el menú Detalles → Ajustar modificaciones. © 2009 SAP AG. Ajuste las modificaciones que realice en el sistema a los nuevos objetos importados al sistema. 10-07-2009 . Puede ajustar las modificaciones aquí.Capítulo 5: Modificaciones TAW12_2 Solución 7: Ajuste de modificaciones Tarea: Ajuste de modificaciones 1. a) 188 Inicie el Patch Manager (transacción SPAM).

Por ello es necesario implementar un ajuste de las modificaciones. Introduzca su nombre de usuario en el campo “Usuario que hizo la última modificación”. En caso necesario. 10-07-2009 Una vez ajustados todos los objetos. Ejemplo empresarial Ha implementado notas como correcciones avanzadas en su sistema. Tarea 1: Inicie el ajuste de las modificaciones seleccionando Menú SAP → Herramientas → Workbench ABAP → Utilidades → Actualización → Utilidades de upgrade → Comparación de programa o llamando la transacción SPAU. 4. También ha realizado algunas modificaciones. libere la orden de modificación.TAW12_2 167 Lección: Ajuste de modificaciones Ejercicio 8: Ajuste de modificaciones (opcional) Duración del ejercicio: 30 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Ajustar las modificaciones después de implementar un support package. Si no se ha definido el modo de ajuste. Ejecute el programa. 5. © 2009 SAP AG. Las notas también se incluyen y se entregan como parte de los support packages. 2. Empiece por arriba y vaya descendiendo: 1. 2. Empiece por los objetos en la categoría “Correcciones de notas”. Cuando se implementa un support package. puede que se sobrescriban algunas de las modificaciones y correcciones implementadas mediante notas. 1. Reservados todos los derechos. Siga con la categoría “Con Asistente de modificaciones”. 3. 189 . ¿Qué significan los iconos? Tarea 2: Ajustar las modificaciones. cree una nueva orden de modificación. Para terminar. Tarea 3: 1. trabaje con la categoría “Sin Asistente de modificaciones”. Visualizar los objetos en categorías distintas. reinicie la función haciendo doble clic en el interrogante.

libere la orden de modificación. a) 190 – © 2009 SAP AG. a) 5. cree una nueva orden de modificación. 1. – Siga con la categoría “Con Asistente de modificaciones”. – – Para terminar. ¿Qué significan los iconos? a) El significado de los iconos se explica en la documentación sobre el ajuste de modificaciones. Empiece por arriba y vaya descendiendo: 1. a) – Tarea 3: 1. trabaje con la categoría “Sin Asistente de modificaciones”. a) 2. – Visualizar los objetos en categorías distintas. Reservados todos los derechos. a) 4. Si no se ha definido el modo de ajuste. 10-07-2009 . reinicie la función haciendo doble clic en el interrogante. Introduzca su nombre de usuario en el campo “Usuario que hizo la última modificación”. Una vez ajustados todos los objetos. – En caso necesario. Tarea 2: Ajustar las modificaciones. Ejecute el programa. Empiece por los objetos en la categoría “Correcciones de notas”.Capítulo 5: Modificaciones TAW12_2 Solución 8: Ajuste de modificaciones (opcional) Tarea 1: Inicie el ajuste de las modificaciones seleccionando Menú SAP → Herramientas → Workbench ABAP → Utilidades → Actualización → Utilidades de upgrade → Comparación de programa o llamando la transacción SPAU. a) 2. a) 3.

10-07-2009 © 2009 SAP AG. 191 .TAW12_2 Lección: Ajuste de modificaciones Resumen de la lección Ahora podrá: • Enumerar los distintos pasos del ajuste de modificaciones. Reservados todos los derechos. • Describir cómo se realiza el ajuste de modificaciones en los sistemas siguientes. • Enumerar los objetos que se deben ajustar y cuándo.

10-07-2009 . • Describir cómo se realiza el ajuste de modificaciones en los sistemas siguientes. • Describir qué son los exits de usuario y cómo funcionan. • Citar las ventajas del Note Assistant.Resumen del capítulo TAW12_2 Resumen del capítulo Ahora podrá: • Describir qué es una modificación. • Describir qué se debe tener en cuenta a la hora de implementar modificaciones. • Enumerar los objetos que se deben ajustar y cuándo. • Elaborar una lista de las modificaciones realizadas mediante el Browser de modificaciones. • Realizar modificaciones especializadas mediante el Asistente de modificaciones. • Explicar los conceptos básicos en el entorno de modificación. 192 © 2009 SAP AG. • Usar el Note Assistant para ajustar las correcciones implementadas mediante notas SAP. Reservados todos los derechos. • Explicar cómo funciona el Asistente de modificaciones. • Usar el Note Assistant para implementar correcciones del código fuente en un sistema SAP. • Enumerar los distintos pasos del ajuste de modificaciones. • Describir cómo buscar exits de usuario en el sistema y usarlos para ampliar el software de SAP.

Reservados todos los derechos.10. al comienzo de un módulo de funciones o al final de un include. El concepto de ampliación se trata en la segunda lección. desde el release 4. you must change the software component assignment of the package DNW7AW to SAP_ABA (modification) before the course starts. En SAP NetWeaver Release 7. which has not (yet) been integrated into the training system.) Resumen del capítulo Las ampliaciones le ofrecen la opción de adaptar el software de SAP a sus necesidades de cliente sin tener que realizar modificaciones. The easiest way to do this is with the report SAPDNW7AW_COURSE_PREPARATION. También es posible añadir parámetros propios a módulos de funciones o métodos globales. los BAdI se ampliaron para incluir exits de dynpro. Son más flexibles y eficaces que la variante clásica. Las ampliaciones implícitas son una de las innovaciones más importantes en este caso. (This directly manipulates the management table TDVEC – we do not recommend you follow this same procedure in live systems. los add-ins empresariales (BAdI). you cannot enhance objects in this package. los exits de cliente. por ejemplo. A lo largo de los años se han desarrollado varias técnicas con este fin. Puede usarlas para añadir su propio código fuente en determinados puntos de los programas. como los exits de usuario. las opciones de ampliación existentes aumentaron considerablemente con la introducción del concepto de ampliación. Los nuevos BAdI son también uno de los componentes más importantes del concepto de ampliación. 10-07-2009 © 2009 SAP AG. 193 . to run all the demos and exercises. Éstos se tratan en la primera lección. los eventos de operación (BTE) y.6A de R/3. En SAP Web Application Server Release 6. Until the TRAINING component is available in the training system.0.Capítulo 6 Ampliaciones 171 Atención: As the package DNW7AW is assigned to the software component TRAINING.

. Reservados todos los derechos......... y usarlos para ampliar o sustituir el software de SAP............ 10-07-2009 .................................................... Contenido del capítulo Lección: El nuevo concepto de ampliación...........195 Ejercicio 9: Puntos de ampliación implícitos ..215 Ejercicio 11: Puntos y secciones de ampliación explícitos.......223 194 © 2009 SAP AG...... Buscar BAdI nuevos y usarlos para ampliar el software de SAP........Capítulo 6: Ampliaciones TAW12_2 Objetivos del capítulo Al finalizar este capítulo podrá: • • • • • • • Explicar las nuevas opciones de ampliación y su gestión...... 211 Ejercicio 10: Ampliaciones implícitas de clases . Explicar el concepto de la nueva tecnología BAdI y su arquitectura en tiempo de ejecución................ Explicar cómo se integra la implementación existente de ampliación de soluciones sectoriales en el Switch Framework y cómo se puede activar........ Explicar por qué SAP ha introducido la nueva tecnología BAdI....... Buscar puntos y secciones de ampliación explícitos.....221 Ejercicio 12: BAdI nuevos . Enumerar las opciones de ampliación implícitas y usar estos puntos de ampliación para ampliar el software de SAP......

Buscar BAdI nuevos y usarlos para ampliar el software de SAP. which has not (yet) been integrated into the training system. 195 . además de la nueva tecnología BAdI introducida con SAP NetWeaver 7. y usarlos para ampliar o sustituir el software de SAP. Until the TRAINING component is available in the training system. Atención: Since the package DNW7AW is assigned to the software component TRAINING. Explicar por qué SAP ha introducido la nueva tecnología BAdI. Objetivos de la lección Al finalizar esta lección podrá: • • • • • • • Explicar las nuevas opciones de ampliación y su gestión. Due to the complexity of the subject. Explicar cómo se integra la implementación existente de ampliación de soluciones sectoriales en el Switch Framework y cómo se puede activar.0. Enumerar las opciones de ampliación implícitas y usar estos puntos de ampliación para ampliar el software de SAP. Reservados todos los derechos.. you cannot enhance objects in this package. The participants should go through the exercises to extend the knowledge they have acquired. The easiest way to do this is with the report SAPDNW7AW_COURSE_PREPARATION (which directly manipulates the management table TDVEC – we do not recommend you follow this same procedure in productive systems. it is important that you first provide the participants with a good overview of the options before going into detail. Explicar el concepto de la nueva tecnología BAdI y su arquitectura en tiempo de ejecución. You should definitely provide demos to illustrate the respective content. so that all the demos and exercises can run.TAW12_2 Lección: 173 Lección: El nuevo concepto de ampliación El nuevo concepto de ampliación Duración de la lección: 180 Minutos Resumen de la lección En esta lección se explican las ventajas y el uso de las nuevas opciones de ampliación.. you have to change the software component assignment of the package DNW7AW to SAP_ABA (modification) before the course starts. You will find these in the package DNW7AW. Buscar puntos y secciones de ampliación explícitos.) 10-07-2009 © 2009 SAP AG.

Capítulo 6: Ampliaciones TAW12_2 Ejemplo empresarial Después de realizar un upgrade a SAP NetWeaver 7. Puntos y secciones de ampliación En esta sección primero se ofrece un resumen de las nuevas opciones de ampliación y su gestión. Además. A continuación se explica dónde hay puntos de ampliación implícitos y cómo se pueden usar para ampliar el software de SAP. Resulta especialmente interesante el hecho de que las ampliaciones mediante puntos de ampliación no requieren preparación por parte de SAP. a diferencia de las ampliaciones implementadas mediante la tecnología de ampliación anterior. Finalmente se explica cómo usar los puntos y las secciones de ampliación explícitos como opciones de ampliación. Reservados todos los derechos. SAP ha implementado la nueva tecnología BAdI por cuestiones de rendimiento.0 desea usar las nuevas opciones de ampliación y la nueva tecnología BAdI para ampliar el software de SAP. las demás razones se describen más adelante. se han añadido dos opciones de ampliación nuevas: Puntos de ampliación y secciones de ampliación.0. 10-07-2009 . Gráfico 120: El nuevo concepto de ampliación (resumen) A partir de SAP NetWeaver 7. 196 © 2009 SAP AG.

Los puntos de ampliación explícitos son opciones de inserción preparadas por SAP. módulos de funciones y clases sin tener que realizar modificaciones. es decir. Los BAdI anteriores (clásicos) siguen existiendo en el sistema como antes. Gráfico 121: Puntos de ampliación Un punto de ampliación es una opción que permite añadir código fuente. SAP sólo ofrecerá BAdI con la nueva tecnología.TAW12_2 Lección: El nuevo concepto de ampliación En el gráfico anterior se ilustra cómo los puntos y secciones de ampliación y los BAdI creados mediante la nueva tecnología se agrupan y gestionan mediante puntos de ampliación. En el futuro. 197 . Los puntos de ampliación compuestos pueden ser puntos de ampliación simples y/o otros puntos de ampliación compuestos. sin embargo. sin ninguna preparación por parte de SAP. Sirven para agrupar semánticamente los puntos de ampliación. En los gráficos siguientes se muestra en qué lugares hay puntos de ampliación implícitos. declaraciones variables y declaraciones de parámetros a programas SAP. 10-07-2009 © 2009 SAP AG. En el gráfico siguiente se puede ver qué son los puntos de ampliación. Reservados todos los derechos. mientras que los puntos de ampliación implícitos están presentes en lugares particulares en objetos SAP de forma predeterminada.

A continuación se describe el procedimiento para usar los diversos puntos de ampliación implícitos.Capítulo 6: Ampliaciones TAW12_2 Gráfico 122: Puntos de ampliación implícitos (1) Gráfico 123: Puntos de ampliación implícitos (2) Para usar un punto de ampliación implícito se implementa una implementación de ampliación. 10-07-2009 . Reservados todos los derechos. 198 © 2009 SAP AG.

Enhance a simple function module. 3. método).. Reservados todos los derechos. Importante: Cuando se amplía una declaración de estructura (tipo) directamente antes de END OF. seleccione el pulsador de ampliación. 4. Cree una implementación de ampliación mediante el menú contextual en el editor.. En el status GUI. At this point the participants could do the exercise on implicit enhancement points. for example FI_COMPANYCODE_GETDETAIL. 2. 199 . seleccione el pulsador "Activar ampliaciones". módulo de funciones. Ampliación de interfases de métodos y módulos de funciones SAP de clases globales: Inserte nuevos parámetros de interfase con el tipo en el Function Builder o el generador de clases. Inserte el código fuente. A continuación seleccione Tratar → Operaciones de ampliación → Mostrar opciones de ampliación implícitas para mostrar las opciones de ampliación implícitas. Visualice el objeto SAP (programa. 5.TAW12_2 Lección: El nuevo concepto de ampliación Uso de puntos de ampliación implícitos que permiten insertar código fuente (plug-ins de código fuente implícitos): 1. 10-07-2009 © 2009 SAP AG.. 6. Since you will probably not be the only one teaching on the system. se debe usar la sintaxis DATA <campo adicional> TYPE <Type> porque de otro modo el programa sería incorrecto sintácticamente. Consejo: Estos parámetros de interfase recién añadidos suelen ser opcionales y se pueden activar en las ampliaciones de código fuente de los métodos o módulos de funciones correspondientes. para ello siga el acceso vía menús Módulo de funciones → Ampliar interfase o Clase → Ampliar. you should add a statement to your source code such as the following: IF sy-uname = <YOUR_NAME>. En el status GUI.

Then create an overwrite method for DISPLAY_ATTRIBUTES that also outputs the additional attribute. Seleccione el acceso vía menús Tratar → Operaciones de ampliación.Capítulo 6: Ampliaciones TAW12_2 Definición de atributos/métodos adicionales de clases globales: Defina métodos y atributos adicionales en el generador de clases. Insertar método posterior o Añadir método de sobrescritura. para ello siga el acceso vía menús Clase → Ampliar. 3. para ello siga el acceso vía menús Clase → Ampliar. Cambie al método de ampliación en el generador de clases. Consejo: Haga doble clic en un método adicional para ir al editor de método para la implementación.. Use el cursor para seleccionar el método SAP necesario. Definición de un método anterior/posterior/de sobrescritura para el método de una clase global: 1. Define an appropriate additional getter method. Enhance the constructor with a suitable additional parameter and use the implicit enhancement option at the end of the constructor source code to map the parameter to the attribute. Reservados todos los derechos. No pueden acceder a los componentes privados de la clase. 2. Se trata de métodos de instancia de una clase local generada automáticamente y tienen un atributo llamado CORE_OBJECT que hace referencia a la instancia actual de la clase SAP. se puede crear un método de sobrescritura que sustituya al método SAP. 200 © 2009 SAP AG. Como alternativa. Seleccione el nuevo pulsador en la columna “Exit anterior (posterior/de sobrescritura)” para implementar el método correspondiente. 4. Consejo: Por cada método SAP se puede definir un método anterior y otro posterior. Estos atributos y métodos adicionales se pueden direccionar en las ampliaciones de código fuente de métodos de la clase global. 10-07-2009 . luego seleccione una de las opciones de menú: Insertar método anterior. for example. Estos métodos se llaman automáticamente en los puntos descritos en el método SAP. Estos métodos de ampliación tienen la misma interfase que el método original. Demo: Enhance the class CL_DNW7AW_ENH_IMPLIC_PLANE_D1 with a private additional instance attribute me_span TYPE i DEFAULT 30.

Reservados todos los derechos. 10-07-2009 © 2009 SAP AG. 201 . Los puntos y las secciones de ampliación explícitos que permiten ampliar o sustituir declaraciones se llaman estáticos . No existen secciones de ampliación implícitas.TAW12_2 Lección: El nuevo concepto de ampliación You could have the participants do the exercise on class enhancements here. Los puntos y las secciones de ampliación explícitos siempre están incrustados en puntos de ampliación. Los puntos y las secciones de ampliación explícitos que permiten ampliar o sustituir el código fuente se llaman dinámicos . Una sección de ampliación explícita es una opción que SAP proporciona de antemano para permitir a los usuarios sustituir el código fuente de SAP sin tener que realizar modificaciones. Gráfico 124: Puntos y secciones de ampliación explícitos Un punto de ampliación explícito es una opción que SAP proporciona de antemano para permitir a los usuarios ampliar el código fuente de SAP sin tener que realizar modificaciones.

En los pasos siguientes se describe cómo usar puntos y secciones de ampliación explícitos: 1. At this point. La nueva tecnología BAdI SAP introdujo la nueva tecnología BAdI con SAP NetWeaver 7. 2. En el status GUI. Busque el punto o la sección de ampliación necesarios.0. In the second step. Consejo: Tenga en cuenta que los elementos de SAP Base central no se pueden ampliar. 202 © 2009 SAP AG. 6. En el status GUI. Introduzca el código fuente. 5. 3. Visualice el objeto SAP (programa. create implementations. principalmente para mejorar el rendimiento y ampliar las funciones. 4. En el gráfico siguiente se muestran los motivos individuales. Especifique el nombre de la implementación de ampliación. seleccione el pulsador de ampliación. 7.Capítulo 6: Ampliaciones TAW12_2 Para usar puntos y secciones de ampliación explícitos. método). módulo de funciones. the participants could do the exercise on explicit enhancement points and enhancement sections. Reservados todos los derechos. Cree la implementación de ampliación mediante el menú contextual del punto o la sección de ampliación. 10-07-2009 . implemente una implementación de ampliación (una implementación del punto de ampliación de nivel superior). Demo: It is best to create a simple program with explicit enhancement options yourself. seleccione el pulsador Activar ampliaciones.

Reservados todos los derechos.TAW12_2 Lección: El nuevo concepto de ampliación Gráfico 125: Motivos a favor de la nueva tecnología BAdI La integración de los nuevos BAdI y puntos y secciones de ampliación en el framework de ampliación permite usar las nuevas opciones de ampliación dentro de una herramienta unificada individual. SAP sólo ofrecerá BAdI con la nueva tecnología o mediante puntos y secciones de ampliación explícitos. SAP permite usar flags para activar y desactivar las implementaciones de BAdI implementadas por soluciones sectoriales (véase a continuación). 203 . Mediante la integración de la nueva tecnología de ampliación en el Switch Framework. 10-07-2009 © 2009 SAP AG. En el futuro. Los BAdI anteriores creados mediante la tecnología clásica siguen estando en el sistema.

Reservados todos los derechos. 10-07-2009 .Capítulo 6: Ampliaciones TAW12_2 Gráfico 126: BAdI clásicos (arquitectura) Gráfico 127: BAdI clásicos (sintaxis de llamada en el programa SAP) 204 © 2009 SAP AG.

pero llama los métodos de implementación disponibles con mayor eficacia. ya no se crean clases adaptadores. Gráfico 128: BAdI nuevos (arquitectura) 10-07-2009 © 2009 SAP AG. la clase adaptador de BAdI se genera automáticamente cuando se define la interfase de BAdI/BAdI. En su lugar. Reservados todos los derechos. lo que significa que el programa de aplicación de SAP no se tiene que instanciar.TAW12_2 Lección: El nuevo concepto de ampliación En la tecnología BAdI clásica. En el tiempo de ejecución se crea una instancia de la clase adaptador en el programa de aplicación de SAP y el método de interfase se llama desde la instancia de clase adaptador. Luego los métodos de interfase llaman los métodos (con el mismo nombre) de implementaciones activas secuencialmente. en el tiempo de ejecución del programa de aplicación el sistema genera un handle de BAdI en el núcleo que realiza la misma función que la clase adaptador. Sin embargo. 205 . La nueva tecnología BAdI funciona del mismo modo.

se producirá la excepción cx_badi_initial_reference. Reservados todos los derechos. 10-07-2009 . Si no se encuentra ninguna implementación activa del BAdI en GET BADI.Capítulo 6: Ampliaciones TAW12_2 Gráfico 129: BAdI nuevos (sintaxis de llamada en el programa SAP) En el gráfico anterior se muestra la sintaxis de llamada de los nuevos BAdI. En el siguiente gráfico se muestra el procedimiento de búsqueda de BAdI. Si la referencia de handle es inicial para CALL BADI (por ejemplo. 206 © 2009 SAP AG. por el fallo de GET BADI). se producirá la excepción cx_badi_not_implemented.

TAW12_2 Lección: El nuevo concepto de ampliación Gráfico 130: Búsqueda de BAdI Para usar un BAdI encontrado. debe implementar una implementación de ampliación (una implementación del punto de ampliación de nivel superior). Reservados todos los derechos. 10-07-2009 © 2009 SAP AG. 207 . Gráfico 131: Uso de los BAdI La descripción anterior para la búsqueda y la utilización de BAdI guarda relación con los exits de programa (el tipo de exit más frecuente). De este modo se implementará una implementación de BAdI por cada BAdI en el punto de ampliación.

Gráfico 132: BAdI dependientes de filtro En el gráfico anterior se ilustra el concepto de BAdI dependiente de filtro. que equivale al concepto de BAdI clásico.Capítulo 6: Ampliaciones TAW12_2 Puede buscar e implementar exits de menú y de dynpro exactamente del mismo modo que con la técnica BAdI clásica. sino también condiciones de filtro mediante los operadores <>. CP. Para las implementaciones. 10-07-2009 . sólo hace falta usar la sentencia GET BADI en vez del método GET_INSTANCE_FOR_SUBSCREENS en el PBO del dynpro subscreen de cliente para exits de dynpro. Sin embargo. También puede definir múltiples filtros para un BAdI. o bien mediante el método descrito anteriormente. ahora no sólo puede especificar valores de filtro individuales. Reservados todos los derechos. Consejo: Documentación sobre el nuevo concepto de ampliación: Seleccione el pulsador Información en el Editor ABAP → Introduzca "Concepto de ampliación" como concepto de búsqueda → Entrada de glosario: "Concepto de ampliación" → "Más" 208 © 2009 SAP AG. >=. NP. las funciones se han ampliado. <. Para obtener el handle de BAdI para transportar datos. <=. >. Ahora también se pueden usar filtros numéricos.

elementos de pantalla y opciones de menú.TAW12_2 Lección: El nuevo concepto de ampliación Switch Framework La idea del Switch Framework es que los clientes reciban todas las soluciones sectoriales como paquete completo y que puedan activar las que deseen utilizar. Puede usar una función empresarial para agrupar estos flags. SAP ha decidido también usar paquetes de ampliación para entregar desarrollos futuros. Gráfico 133: Switch Framework Puede usar el Switch Framework para crear flags y asignarles paquetes. Los clientes pueden decidir qué nuevas funciones desean activar. 209 . Reservados todos los derechos. Puede usar la transacción SFW5 para activar un único conjunto de funciones empresariales y activar o desactivar funciones empresariales. Demo: SFW5. Todas las demás soluciones están disponibles. Los clientes también pueden usar el Switch Framework para activar y desactivar implementaciones de ampliaciones. Una solución sectorial de SAP es un conjunto de funciones empresariales conocidas como conjunto de funciones empresariales. 10-07-2009 © 2009 SAP AG. pero no se pueden usar.

As a demonstration. aunque sigan estando en el sistema. Activación asigna todos los flags/objetos de paquete a la función empresarial. 10-07-2009 . Son posibles las opciones Activación y Habilitar/Pausa. todos los objetos de paquete que se pueden activar (incluidas las ampliaciones) pasan a ser ineficaces. Activate your business function and check whether or not your previous implementations are effective. seleccione Activación. mientras que Habilitar/Pausa asigna sólo los objetos del Dictionary. you should create a switch and assign it to your package with the previous enhancement implementations. Cuando se asigna un flag a una función empresarial. Reservados todos los derechos. La función empresarial se puede activar y desactivar mediante la transacción SFW5. debe haberse definido como anulable y el paquete no puede contener ningún objeto del Dictionary. 210 © 2009 SAP AG.Capítulo 6: Ampliaciones TAW12_2 El cliente define un flag en la transacción SFW1 y luego asigna el paquete con las implementaciones que se deben activar. se debe especificar el tipo de asignación. para desactivar la función empresarial. Now show that your previous implementations are no longer effective although they are still available. Cuando se desactiva. El cliente define también una función empresarial (en la transacción SFW2) a la que se asigna el flag. you should create a business function and assign your switch to the business function. Sin embargo. En consecuencia. Then.

TAW12_2 189 Lección: El nuevo concepto de ampliación Ejercicio 9: Puntos de ampliación implícitos Duración del ejercicio: 15 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Usar puntos de ampliación implícitos para ampliar el código fuente de SAP. 211 . Datos del sistema Sistema: Will be assigned Mandante: Will be assigned ID de usuario: Will be assigned Clave de acceso: Will be assigned Parametrizaciones del sistema: No special settings required in the standard training system Tarea: Ampliar una definición de estructura y una subrutina 10-07-2009 1. © 2009 SAP AG. 5. 4. complete los campos adicionales cityfrom y cityto del parámetro formal ps_flight con valores antes de que se visualicen los campos carrid y connid (mediante el punto de ampliación implícito correspondiente). Reservados todos los derechos. 2. Seleccione ZDNW7AW_ENH_IMPLIC_## como nombre de la implementación de ampliación. Use el punto de ampliación implícito correspondiente para añadir los campos cityfrom y cityto a la definición de la variable estructural gs_flight (use el elemento de datos S_CITY para escribir cada campo). Active las ampliaciones y pruebe el programa. Analice el código fuente del programa SAP SAPDNW7AW_ENH_IMPLIC_##. 3. En la subrutina. Ejemplo empresarial Desea usar puntos de ampliación implícitos para ampliar la definición de una variable de estructura y una subrutina en un programa SAP sin tener que realizar modificaciones. cityfrom y cityto. Use el punto de ampliación implícito correspondiente en la subrutina después de que se hayan visualizado los campos carrid y connid para visualizar también fldate. (## indica el número de grupo de dos dígitos).

Continúa en la página siguiente 212 © 2009 SAP AG. a) 2. ps_flight-cityto = ’Mainz’. En la siguiente pantalla. a) Sitúe el cursor en la primera fila de la subrutina write_str. llame el menú contextual para el editor y seleccione Implementación de ampliación → Crear. Sitúe el cursor en el punto indicado dentro de la definición de la estructura. Luego. b) Para el código fuente defina lo siguiente: DATA: cityfrom TYPE s_city. En la pantalla siguiente. - Use el punto de ampliación implícito correspondiente para añadir los campos cityfrom y cityto a la definición de la variable estructural gs_flight (use el elemento de datos S_CITY para escribir cada campo). seleccione Declaración. en la pantalla siguiente. A continuación seleccione Tratar → Operaciones de ampliación → Mostrar opciones de ampliación implícitas. Analice el código fuente del programa SAP SAPDNW7AW_ENH_IMPLIC_##. (## indica el número de grupo de dos dígitos).Capítulo 6: Ampliaciones TAW12_2 Solución 9: Puntos de ampliación implícitos Tarea: Ampliar una definición de estructura y una subrutina 1. Seleccione ZDNW7AW_ENH_IMPLIC_## como nombre de la implementación de ampliación. seleccione la implementación que ya ha creado y confirme esta selección con Intro. seleccione Implementación de ampliación → Crear. 3. En la subrutina. Reservados todos los derechos. Vaya al modo de ampliación: Programa → Ampliar. b) Para el código fuente defina lo siguiente. En el menú contextual. Grabe las entradas. Actualice el texto breve y seleccione Intro. cityto TYPE s_city. 10-07-2009 . a) Visualice el programa SAPDNW7AW_ENH_IMPLIC_## en el modo de visualización en el Object Navigator. por ejemplo: ps_flight-cityfrom = ’Heidelberg’. introduzca ZDNW7AW_ENH_IMPLIC_##. complete los campos adicionales cityfrom y cityto del parámetro formal ps_flight con valores antes de que se visualicen los campos carrid y connid (mediante el punto de ampliación implícito correspondiente).

Reservados todos los derechos. a) b) Véase el enfoque equivalente más arriba. Use el punto de ampliación implícito correspondiente en la subrutina después de que se hayan visualizado los campos carrid y connid para visualizar también fldate. Active las ampliaciones y pruebe el programa. a) 10-07-2009 Pulse Ctrl + F3 y F8. cityfrom y cityto.TAW12_2 Lección: El nuevo concepto de ampliación 4. 5. Para el código fuente defina lo siguiente: WRITE: / ps_flight-carrid. © 2009 SAP AG. ps_flight-connid. 213 .

Reservados todos los derechos.Capítulo 6: Ampliaciones 214 © 2009 SAP AG. TAW12_2 10-07-2009 .

cree un método getter funcional GET_MAX_SPEED. Nombre sugerido: me_max_speed. Se debe usar para registrar la velocidad máxima de un camión. Tarea 1: Crear un atributo adicional 1. 5.TAW12_2 193 Lección: El nuevo concepto de ampliación Ejercicio 10: Ampliaciones implícitas de clases Duración del ejercicio: 30 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Ampliar las clases globales. Dentro de una implementación de ampliación ZDNW7AW_TRUCK##a. Valor inicial: 100. (## indica el número de grupo). 2. cree un nuevo atributo de instancia privado del tipo I para la clase CL_DNW7AW_ENH_IMPLIC_TRUCK_##. Active su implementación de ampliación. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. Ejemplo empresarial SAP suministra una clase de camión que no cubre sus necesidades. 4. Datos del sistema Sistema: Will be assigned Mandante: Will be assigned ID de usuario: Will be assigned Clave de acceso: Will be assigned Parametrizaciones del sistema: No special instructions required when using a standard training system. Realice un test de la clase en el entorno de test del generador de clases: Cree un camión (es decir. Active su implementación de ampliación. 215 . como km/h o mph). (En este caso se ha prescindido de una unidad de medida adicional necesaria. 3. De acuerdo con el atributo. Por eso amplía (no modifica) la clase CL_DNW7AW_ENH_IMPLIC_TRUCK_##. un objeto de la clase CL_DNW7AW_ENH_IMPLIC_TRUCK_##) y llame su método getter para conseguir la máxima velocidad.

3. 2. 4. Realice un nuevo test de la clase en el entorno de test del generador de clases: Cree un camión (es decir. Active su implementación de ampliación. Active su implementación de ampliación. un objeto de la clase CL_DNW7AW_ENH_IMPLIC_TRUCK_##) con un peso máximo específico y llame su método GET_CARGO. un objeto de la clase CL_DNW7AW_ENH_IMPLIC_TRUCK_##) con una velocidad máxima específica y llame su método getter para la velocidad. Active su implementación de ampliación. Amplíe el constructor estático con un parámetro opcional ie_max_speed con el que pueda determinar la velocidad cuando cree un camión. 216 1. 2. Active su implementación de ampliación. Reservados todos los derechos. Use el punto de ampliación implícito disponible al final del código fuente del constructor para asignar el parámetro ie_max_speed al atributo adicional me_max_speed. 3. el último requisito legal estipula que el camión sólo se podrá cargar hasta un 90% de su peso máximo. 5. 10-07-2009 . © 2009 SAP AG.Capítulo 6: Ampliaciones TAW12_2 Tarea 2: Crear un parámetro adicional para el método 1. Cree un método posterior para el método GET_CARGO que reduzca el valor de retorno real al 90%. Realice un nuevo test de la clase en el entorno de test del generador de clases: Cree un camión (es decir. Tarea 3: Crear un método posterior para el método Por cuestiones de seguridad (para reducir el riesgo de accidentes).

como km/h o mph). Aquí defina lo siguiente: re_speed = me_max_speed. Active su implementación de ampliación. a) 4. a) Para comprobarlo. Cree una instancia (seleccione F8 de nuevo) y llame el método. (En este caso se ha prescindido de una unidad de medida adicional necesaria. Seleccione Clase → Ampliar. Dentro de una implementación de ampliación ZDNW7AW_TRUCK##a. vaya al modo de visualización de la clase CL_DNW7AW_ENH_IMPLIC_TRUCK_##. Grabe las entradas. Reservados todos los derechos. cree un método getter funcional GET_MAX_SPEED. introduzca ZDNW7AW_TRUCK##a como nombre de la implementación y cree un texto breve. pulse F8. Valor inicial: 100. un objeto de la clase CL_DNW7AW_ENH_IMPLIC_TRUCK_##) y llame su método getter para conseguir la máxima velocidad.TAW12_2 Lección: El nuevo concepto de ampliación Solución 10: Ampliaciones implícitas de clases Tarea 1: Crear un atributo adicional 1. a) 5. Se debe usar para registrar la velocidad máxima de un camión. Realice un test de la clase en el entorno de test del generador de clases: Cree un camión (es decir. De acuerdo con el atributo. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. Haga doble clic en el nombre del método para acceder a su código fuente. Cree re_speed como parámetro de retorno del tipo I. Pulse Ctrl + F3. cree un nuevo atributo de instancia privado del tipo I para la clase CL_DNW7AW_ENH_IMPLIC_TRUCK_##. En la pantalla siguiente. Pulse Ctrl + F3. Nombre sugerido: me_max_speed. a) 3. Active su implementación de ampliación. 217 . En el generador de clases del Object Navigator. Vaya a la etiqueta Atributos para la clase y cree el atributo adicional. Vaya a la etiqueta Métodos y cree GET_MAX_SPEED como método de instancia público. a) 2.

10-07-2009 . Asegúrese de que sigue en el modo de ampliación. cree el parámetro para import del tipo I. Grabe las entradas. Cree un texto breve. Amplíe el constructor estático con un parámetro opcional ie_max_speed con el que pueda determinar la velocidad cuando cree un camión. Active su implementación de ampliación. Seleccione Tratar → Operaciones de ampliación → Crear y luego Código fuente. Seleccione Método → Ampliar y luego Tratar → Operaciones de ampliación → Mostrar opciones de ampliación implícitas. Active su implementación de ampliación. Realice un nuevo test de la clase en el entorno de test del generador de clases: Cree un camión (es decir. Puesto que no se trata de una ampliación explícita adicional. Active el cursor en el método CONSTRUCTOR y vaya a sus parámetros. Introduzca ZDNW7AW_TRUCK##b. Continúa en la página siguiente 218 © 2009 SAP AG. Pulse Ctrl + F3. a) Haga doble clic en el nombre del método CONSTRUCTOR para acceder a su código fuente. Sitúe el cursor en la fila anterior a ENDMETHOD. a) 2. Reservados todos los derechos. 4. a) 3. Use el punto de ampliación implícito disponible al final del código fuente del constructor para asignar el parámetro ie_max_speed al atributo adicional me_max_speed. deberá crear una nueva implementación de ampliación. b) Defina lo siguiente como código fuente: me_max_speed = ie_max_speed. a) 5.Capítulo 6: Ampliaciones TAW12_2 Tarea 2: Crear un parámetro adicional para el método 1. a) Véase más arriba. Pulse Ctrl + F3. Aquí. Active su implementación de ampliación. un objeto de la clase CL_DNW7AW_ENH_IMPLIC_TRUCK_##) con una velocidad máxima específica y llame su método getter para la velocidad.

TAW12_2 Lección: El nuevo concepto de ampliación Tarea 3: Crear un método posterior para el método Por cuestiones de seguridad (para reducir el riesgo de accidentes). Realice un nuevo test de la clase en el entorno de test del generador de clases: Cree un camión (es decir. Active su implementación de ampliación. el último requisito legal estipula que el camión sólo se podrá cargar hasta un 90% de su peso máximo. Cree un método posterior para el método GET_CARGO que reduzca el valor de retorno real al 90%. a) 3. a) 10-07-2009 Pulse Ctrl + F3. un objeto de la clase CL_DNW7AW_ENH_IMPLIC_TRUCK_##) con un peso máximo específico y llame su método GET_CARGO. b) Para el código fuente defina lo siguiente: re_cargo = re_cargo * ’0. © 2009 SAP AG. 219 . En la etiqueta Métodos sitúe el cursor en el método GET_CARGO y seleccione Tratar → Operaciones de ampliación → Insertar método posterior. 2. Haga clic en el pulsador que acaba de aparecer en la columna Exit posterior. Reservados todos los derechos. Véase más arriba. 1.9’. a) Asegúrese de que sigue en el modo de ampliación.

Reservados todos los derechos.Capítulo 6: Ampliaciones 220 © 2009 SAP AG. TAW12_2 10-07-2009 .

3. Datos del sistema Sistema: Will be assigned Mandante: Will be assigned ID de usuario: Will be assigned Clave de acceso: Will be assigned Parametrizaciones del sistema: No special settings required in the standard training system Tarea: Ampliar y sustituir el código fuente de SAP 10-07-2009 1. Seleccione ZDN7AW_ENH_EXPLIC## como nombre de la implementación de ampliación.TAW12_2 199 Lección: El nuevo concepto de ampliación Ejercicio 11: Puntos y secciones de ampliación explícitos Duración del ejercicio: 15 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Usar puntos y secciones de ampliación explícitos para ampliar o sustituir el código fuente de SAP. (## indica el número de grupo de dos dígitos). Reservados todos los derechos. Ejemplo empresarial Desea usar puntos y secciones de ampliación explícitos para ampliar o sustituir el código fuente de SAP sin realizar modificaciones. Analice el código fuente del programa SAP SAPDNW7AW_ENH_EXPLIC_00 y ejecútelo. 2. © 2009 SAP AG. Use la sección de ampliación explícita DNW7AW_ENHSEC1_## para visualizar un texto distinto al proporcionado por SAP. Use el punto de ampliación explícito DNW7AW_ENHPO1_## para visualizar también los campos distance y distid. 221 .

Analice el código fuente del programa SAP SAPDNW7AW_ENH_EXPLIC_00 y ejecútelo.Capítulo 6: Ampliaciones TAW12_2 Solución 11: Puntos y secciones de ampliación explícitos Tarea: Ampliar y sustituir el código fuente de SAP 1. pulse F8. Sitúe el cursor en el nombre de la sección de ampliación. 10-07-2009 . (## indica el número de grupo de dos dígitos). llame el menú contextual para el editor y seleccione Implementación de ampliación → Crear. vaya al modo de ampliación: Programa → Ampliar. a) 2. Seleccione ZDN7AW_ENH_EXPLIC## como nombre de la implementación de ampliación. Reservados todos los derechos. Use la sección de ampliación explícita DNW7AW_ENHSEC1_## para visualizar un texto distinto al proporcionado por SAP. llame el menú contextual para el editor y seleccione Implementación de ampliación → Crear. a) 222 Para ejecutarlo. Para ello. Sitúe el cursor en el nombre del punto de ampliación. vaya al modo de ampliación: Programa → Ampliar. a) 3. Para ello. Use el punto de ampliación explícito DNW7AW_ENHPO1_## para visualizar también los campos distance y distid. © 2009 SAP AG.

2. 223 . Cree una implementación de ampliación (para el punto) con una implementación de BAdI (para el BAdI). (## indica el número de grupo de dos dígitos). Datos del sistema Sistema: Will be assigned Mandante: Will be assigned ID de usuario: Will be assigned Clave de acceso: Will be assigned Parametrizaciones del sistema: No special settings required in the standard training system Tarea: Buscar BAdI nuevos y usarlos 1. Reservados todos los derechos.TAW12_2 201 Lección: El nuevo concepto de ampliación Ejercicio 12: BAdI nuevos Duración del ejercicio: 30 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Buscar BAdI nuevos en programas de SAP y usarlos para ampliar el programa de SAP. Nombre de la implementación de ampliación: ZDNW7AW_ESPOT_BADI_## Nombre de la implementación de BAdI: ZDNW7AW_BADI_## Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. En el programa SAP SAPDNW7AW_BADI_## busque un BAdI que se use y visualice el punto de ampliación superior con la definición del BAdI. Ejemplo empresarial Desea encontrar BAdI implementados mediante la nueva tecnología BAdI en programas de SAP y usarlos para ampliar el software de SAP.

copiar la clase de implementación de ejemplo en su clase de implementación y ajustar el método copiado si es necesario. Consejo: Puede: .Capítulo 6: Ampliaciones 3.crear una clase de implementación en blanco e implementar el método personalmente. 10-07-2009 . una para DE (Alemania) y otra para GB (Gran Bretaña). por ejemplo. puede crear varias implementaciones. O bien: . 224 © 2009 SAP AG. Reservados todos los derechos. Puesto que el BAdI depende de un filtro. TAW12_2 Implemente la implementación de BAdI para que se visualicen campos adicionales de la tabla interna.

cree un texto breve para ella y grabe las entradas. Haga doble clic en el tipo de variable (DNW7AW_BADI_##). b) En la pantalla siguiente introduzca ZDNW7AW_ESPOT_BADI_## como nombre de la implementación.TAW12_2 Lección: El nuevo concepto de ampliación Solución 12: BAdI nuevos Tarea: Buscar BAdI nuevos y usarlos 1. Busque el comando GET BADI. En el programa SAP SAPDNW7AW_BADI_## busque un BAdI que se use y visualice el punto de ampliación superior con la definición del BAdI. Haga doble clic en la variable que hay a continuación para acceder a la definición. Nombre de la implementación de ampliación: ZDNW7AW_ESPOT_BADI_## Nombre de la implementación de BAdI: ZDNW7AW_BADI_## a) En la visualización del punto de ampliación. 225 . pulse F6 o el pulsador para crear una implementación. (## indica el número de grupo de dos dígitos). a) 2. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. Pasará al punto de ampliación relevante DNW7AW_ESPOT_BADI_##. Cree una implementación de ampliación (para el punto) con una implementación de BAdI (para el BAdI). donde se visualiza el BAdI DNW7AW_BADI_##.

Puesto que el BAdI depende de un filtro. b) Vaya a Crear implementación (pulsador c) En el árbol de implementación de ampliación. O bien: . d) Si ha creado la clase partiendo de cero. introduzca ZDNW7AW_BADI_## como nombre de la implementación del BAdI y seleccione Intro. A continuación introduzca ZCL_DNW7AW_BADI_IMPLEM_## como clase de implementación ). puede crear varias implementaciones.Capítulo 6: Ampliaciones 3. g) Ejecute el programa SAPDNW7AW_BADI_## (no modificado). © 2009 SAP AG. Consejo: Puede: . una para DE (Alemania) y otra para GB (Gran Bretaña). haga doble clic en Valores de filtro en el árbol de implementación de ampliación. por ejemplo. ). Haga clic en el pulsador Combinación ( ) y defina los valores de filtro necesarios. Grabe la nueva clase. por ejemplo: WRITE: is_spfli-distance UNIT is_spfli-distid. En caso necesario. is_spfli-distid.copiar la clase de implementación de ejemplo en su clase de implementación y ajustar el método copiado si es necesario. Confirme que desea crear la y seleccione Modificar (pulsador clase. a) En la pantalla que se visualiza después de grabar los datos. Reservados todos los derechos. La forma más sencilla es optar por copiar la clase de ejemplo en la pantalla siguiente. 226 e) Active su clase y su implementación de ampliación. Para el código fuente defina lo siguiente. introduzca diversos países en la pantalla de selección para probar si las implementaciones dependientes de filtro funcionan correctamente. 10-07-2009 . aún tendrá que hacer doble clic para crear el método IF_DNW7AW_BADI~WRITE_ADDITIONAL_COLS. haga doble clic en Clase de implementación.crear una clase de implementación en blanco e implementar el método personalmente. f) Para crear un valor de filtro para una implementación. TAW12_2 Implemente la implementación de BAdI para que se visualicen campos adicionales de la tabla interna.

Reservados todos los derechos. • Explicar por qué SAP ha introducido la nueva tecnología BAdI. • Buscar BAdI nuevos y usarlos para ampliar el software de SAP. • Explicar el concepto de la nueva tecnología BAdI y su arquitectura en tiempo de ejecución. y usarlos para ampliar o sustituir el software de SAP. • Enumerar las opciones de ampliación implícitas y usar estos puntos de ampliación para ampliar el software de SAP. • Explicar cómo se integra la implementación existente de ampliación de soluciones sectoriales en el Switch Framework y cómo se puede activar. • Buscar puntos y secciones de ampliación explícitos.TAW12_2 Lección: El nuevo concepto de ampliación Resumen de la lección Ahora podrá: • Explicar las nuevas opciones de ampliación y su gestión. 10-07-2009 © 2009 SAP AG. 227 .

y usarlos para ampliar o sustituir el software de SAP. Reservados todos los derechos. 228 © 2009 SAP AG. • Buscar BAdI nuevos y usarlos para ampliar el software de SAP. 10-07-2009 . • Explicar por qué SAP ha introducido la nueva tecnología BAdI. • Explicar cómo se integra la implementación existente de ampliación de soluciones sectoriales en el Switch Framework y cómo se puede activar. • Enumerar las opciones de ampliación implícitas y usar estos puntos de ampliación para ampliar el software de SAP. • Buscar puntos y secciones de ampliación explícitos.Resumen del capítulo TAW12_2 Resumen del capítulo Ahora podrá: • Explicar las nuevas opciones de ampliación y su gestión. • Explicar el concepto de la nueva tecnología BAdI y su arquitectura en tiempo de ejecución.

Web Dynpro is a programming model. For example. The generated code is not restricted to HTML. Es apropiado para generar interfases de usuario estandarizadas (UI) mediante un enfoque declarativo. 10-07-2009 © 2009 SAP AG. However. SAP ITS is a mapping tool that allows you to translate existing Dynpro-based applications to a standard that a browser can interpret. the BSP programming model allows all browser-based techniques to be inserted in the generated HTML pages. En este contexto se resumen la arquitectura básica y las funciones clave de Web Dynpro. Reservados todos los derechos. Anything that can be designed without source codeis designed without source code. However. Finally. BSP can therefore be used for “free-style” programming.Capítulo 7 207 Web Dynpro: Introducción The first task is to explain why SAP is rolling out another UI technology. In this chapter you could compare this technology with the classical Dynpro screens SAP ITS and BSP. the freedom in designing the UI is restricted. minimizando el tiempo que se necesita para implementar aplicaciones Web. which allows you to quickly design standard UIs. En esta unidad se explican las ventajas del uso del modelo de programación de Web Dynpro en comparación con otros modelos de programación Web establecidos. Está implementado en Java y ABAP. it is not possible to include client-side JavaScript in the generated pages. This should result in the following evaluation: Web Dynpro is the follow up of the classical Dynpro technology. as there is no declarative approach. Resumen del capítulo Web Dynpro es un modelo de programación que proporciona SAP. constructing a BSP UI takes a lot more time than developing a Web Dynpro UI. 229 . SAP ITS is therefore the only technology that allows you to map existing programs based on Dynpros to HTML and therefore to a browser-based UI. It is not a direct competitor of BSP or SAP ITS.

........231 Ejercicio 13: Web Dynpro: Introducción.... Reservados todos los derechos.......251 230 © 2009 SAP AG............. Explicar las ventajas de este enfoque de los metadatos..................... 10-07-2009 ..... Enumerar los elementos más importantes que forman parte de una aplicación Web Dynpro y que se pueden definir de forma declarativa. Contenido del capítulo Lección: Web Dynpro: Introducción ............Capítulo 7: Web Dynpro: Introducción TAW12_2 Objetivos del capítulo Al finalizar este capítulo podrá: • • • Describir el enfoque de programación declarativo utilizado para crear aplicaciones Web Dynpro..........

in both directions. 231 . and UI). Web Dynpro will replace the old Dynpro technology step by step. navigation.TAW12_2 Lección: 208 Lección: Web Dynpro: Introducción Web Dynpro: Introducción Duración de la lección: 120 Minutos Resumen de la lección En esta lección se ofrece un breve resumen de las funciones de Web Dynpro. there are two other programming models. and developers cannot place their own JavaScript code in the rendered HTML page. Finally BSP is the ABAP technology for “free-style” programming. The disadvantages are: Standardized UIs are not supported and everything has to be coded (for example. The disadvantages are: Long response times. In the ABAP area. SAP ITS and BSPs. It therefore takes a lot 10-07-2009 © 2009 SAP AG. The trainer should be prepared for questions related to the pros and cons of these three technologies. which are still supported. Objetivos de la lección Al finalizar esta lección podrá: • • • Describir el enfoque de programación declarativo utilizado para crear aplicaciones Web Dynpro. Existing Dynpro-based transactions will be converted. the application has to be completely rewritten. it is not the right choice for the development of ornate Internet-like UIs. Explicar las ventajas de este enfoque de los metadatos. Se tratarán las principales ventajas de la utilización de Web Dynpro para diseñar aplicaciones Web. It is beneficial if the trainer knows other UI programming models. since it is impossible to convert all Dynpro-based transactions to Web Dynpro in an acceptable time frame. Web Dynpro has to be embedded in the portal environment. to be able to list the benefits (and the restrictions) of ABAP Web Dynpro. Reservados todos los derechos. BSP can be compared to JSP on the Java side. This will be necessary. SAP ITS is the only Web-enabling technology. The disadvantages are: Although Web Dynpro does allow standardized interfaces to be developed quickly. since an additional timeframe is necessary for mapping between HTML pages and Dynpros . For all other technologies. to be able to change the application design. Enumerar los elementos más importantes que forman parte de una aplicación Web Dynpro y que se pueden definir de forma declarativa. Web Dynpro is the technology SAP uses for developing all future applications. This is because the UI is rendered from metadata. Here are some tips: SAP ITS will be used in to future to map existing Dynpro-based transactions to HTML pages. Everything is possible.

assign this user SAP_ALL authorization (copy of your user). Por ello. A continuación. También puede definir las posibles rutas de navegación de forma declarativa en su aplicación. create a change request and assign each user a task. This technology will therefore also be very interesting for the customer in the future. bajo coste e interfases de usuario estandarizadas. El Object Navigator (código de transacción SE80) se ha mejorado para desarrollar las entidades de una aplicación Web Dynpro. For the sake of simplicity. Las aplicaciones Web Dynpro están creadas mediante técnicas de programación declarativas basadas en el paradigma Model View Controller (MVC). 232 © 2009 SAP AG. Ha decidido que el Web Dynpro de ABAP encaja bien con sus necesidades. ¿Qué es Web Dynpro? Desde un punto de vista técnico. Setting Up the System It is easy to prepare the system for this course: For each user group. Es decir. puede especificar qué elementos de la interfase de usuario desea tener en el mandante y de dónde obtendrán sus datos dichos elementos. you have to define an SU01 user. Check if the transaction ZUSR is available in the system. Web Dynpro de SAP para Java y ABAP es un paso revolucionario en el desarrollo de interfases de usuario basadas en Web. Reservados todos los derechos. se genera automáticamente todo el código fuente necesario para crear la interfase de usuario dentro de un framework de tiempo de ejecución estándar. Web Dynpro de ABAP está disponible desde SAP NetWeaver 2004s (SAP NetWeaver Application Server 7. desea obtener un resumen inicial de las funciones de Web Dynpro. Ejemplo empresarial Desea encontrar la tecnología más adecuada para desarrollar aplicaciones Web basadas en ABAP. Esto le libera de las repetitivas tareas de codificación que conlleva la escritura en HTML y de hacerla interactiva con JavaScript. to perform these steps. BSP is the only of these three technologies that allows sophisticate Internet applications to be developed using ABAP.Capítulo 7: Web Dynpro: Introducción TAW12_2 longer to develop BSP-based UIs than Web Dynpros. For all users. However.0). As SAP develops standard applications that require a standardized and consistent UI. BSP is not used by SAP. 10-07-2009 . Difiere completamente de cualquier paradigma de diseño utilizado anteriormente por SAP y representa un gran avance en el desarrollo de aplicaciones de planificación de recursos para la empresa (ERP) basadas en Web. Las condiciones de sus proyectos son: alta velocidad.

El framework de Web Dynpro le permite colocar el código fuente personalizado en posiciones predefinidas dentro del código generado. A continuación. en la que la apariencia de la interfase de usuario se decide en tiempo de ejecución. mediante el uso de la codificación personalizada. No obstante. Gráfico 134: Declaraciones metamodelo frente a codificación personalizada 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. Dentro de Workbench ABAP existen herramientas especiales que permiten crear una representación abstracta de su aplicación en forma de metamodelo Web Dynpro. Las unidades de modularización de software son componentes Web Dynpro. Declaraciones metamodelo frente a codificación personalizada Una aplicación Web Dynpro está desarrollada mediante un enfoque de programación declarativo. No todas las decisiones de implementación se han de tomar en la fase de diseño. se genera automáticamente el código fuente necesario y se ajusta a una arquitectura estándar conocida como framework de Web Dynpro. Todas las aplicaciones Web Dynpro están construidas a partir de las mismas unidades básicas. el framework estándar puede ampliarse para ofrecer todas las funciones empresariales requeridas. Esto permite la escritura en una aplicación altamente flexible sin la necesidad de escribir directamente en HTML o JavaScript. que pueden combinarse para crear aplicaciones complejas. Es posible implementar una aplicación Web Dynpro.TAW12_2 Lección: Web Dynpro: Introducción Web Dynpro está diseñado para soportar el desarrollo estructurado. 233 .

Incluso es posible acceder a la base de datos mediante un SELECT ABAP. se puede tener acceso directo a todos los tipos de componentes reutilizables (por ejemplo. métodos o módulos de funciones). 10-07-2009 . No obstante. La modelación de objetos todavía no es posible en Web Dynpro ABAP. Reservados todos los derechos. La mejor forma de disponer de entidades reutilizables que encapsulen lógica empresarial es crear clases ABAP que contengan el código fuente. También es posible desarrollar componentes Web Dynpro sin UI (anónimos). y por lo tanto deberá evitarse.Capítulo 7: Web Dynpro: Introducción TAW12_2 Escenarios de aplicación con Web Dynpro Gráfico 135: Escenarios de aplicación con Web Dynpro Las aplicaciones Web Dynpro pueden acceder a diferentes tipos de fuentes de datos: • • • Desde una aplicación Web Dynpro ABAP. esto conduce a una mezcla de la lógica de proceso y la lógica empresarial. El SAP Java Connector (JCo) se puede utilizar para llamar a métodos de Enterprise JavaBeans ubicados en un motor de J2EE. Puede accederse a estos componentes desde otros componentes Web Dynpro mediante la reutilización de componentes. Los servicios Web se pueden utilizar tan pronto como se haya generado un objeto de mandante de servicio Web. que sólo ofrecen funciones reutilizables. 234 © 2009 SAP AG.

Web Dynpro persigue este objetivo de dos maneras. Gráfico 136: Ventajas de Web Dynpro 10-07-2009 © 2009 SAP AG. 235 . el desarrollador puede centrar su atención en el flujo de datos empresariales mediante la aplicación. El código escrito a mano todavía se utiliza. pero está limitado a los casos en los que se requiere manipular datos empresariales. Web Dynpro ofrece características técnicas como. Dado que las tareas repetitivas de codificación de UI se han eliminado. • • Web Dynpro utiliza un metamodelo declarativo en lenguaje neutro para definir una interfase de usuario. Esta separación se consigue mediante una implementación modificada del paradigma de diseño del Model View Controller (MVC). Las aplicaciones Web Dynpro se pueden ejecutar en una amplia gama de dispositivos y en varios tipos de redes: una función importante para los escenarios de colaboración. soporte para la internacionalización. el entorno de desarrollo genera el código fuente requerido.TAW12_2 Lección: Web Dynpro: Introducción Ventajas de Web Dynpro El principal objetivo de Web Dynpro es permitir a los desarrolladores de aplicaciones crear aplicaciones Web potentes con el mínimo esfuerzo mediante herramientas descriptivas en un proceso de desarrollo estructurado. Partiendo de esta definición abstracta. interacción sin intermitencias y una separación depurada de la lógica empresarial y la interfase de usuario. por ejemplo. Un principio fundamental en la filosofía de Web Dynpro es: Cuanto menos líneas de código escrito a mano. mejor. no la interfase de usuario. Reservados todos los derechos.

Una ventana puede contener un número indeterminado de vistas. pero también puede ser una combinación de varias vistas. Las posibles combinaciones de vistas y el flujo entre las vistas se definen en una ventana. un browser). 236 © 2009 SAP AG. Los componentes Web Dynpro son contenedores para otras entidades relacionadas con la UI y el programa Web Dynpro. start transaction SE80 and display package NET310. El código fuente de Web Dynpro está ubicado en los controladores Web Dynpro. La página completa enviada al mandante puede estar parametrizada en una sola vista.Capítulo 7: Web Dynpro: Introducción TAW12_2 Arquitectura de Web Dynpro: entidades y conceptos Gráfico 137: Componente Web Dynpro Los componentes Web Dynpro le permiten estructurar aplicaciones Web complejas y desarrollar entidades de interacción reutilizables. Here. NET310_UI_S2) and display the entities in the object tree. El layout de una vista representa una parte rectangular de una página visualizada por el mandante (por ejemplo. you can log on to the system. La vista contiene elementos de UI como. Las entidades relacionadas con la UI son ventanas y vistas. Do not go further into detail here. 10-07-2009 . Open any Web Dynpro component (for example. Esto permite la anidación de secciones de aplicación grandes. por ejemplo. Una vista puede estar incrustada en un número indeterminado de ventanas. campos de entrada y botones. Al almacenamiento jerárquico de las variables globales de los controladores se le denomina contexto. Reservados todos los derechos.

TAW12_2 Lección: Web Dynpro: Introducción Se puede acceder a los componentes Web Dynpro de tres maneras diferentes: • • • Mediante una aplicación Web Dynpro. Cuando se reutiliza un componente Web Dynpro como subcomponente. Mediante la vinculación de datos. Esto le permite compartir atributos comunes entre varios controladores. Cuando se reutiliza un componente Web Dynpro como subcomponente. la interfase visual de un componente Web Dynpro se puede combinar con las entidades visuales del componente principal para formar la UI. por lo que no es necesario copiar dichos atributos entre los contextos de controlador. El valor de los elementos de UI que permiten la entrada de usuario debe estar conectado a los atributos de contexto del controlador correspondiente. se establece un transporte de datos automático entre los elementos de UI y los atributos de contexto. Reservados todos los derechos. Esto se denomina asignación de contextos. Esto se denomina vinculación de datos. 237 . el componente principal puede acceder a todos los métodos y datos definidos en la interfase de programación. al que se puede llamar desde un browser de navegación en Web o desde otro mandante Web Dynpro. se puede enlazar un componente Web Dynpro a un URL. 10-07-2009 © 2009 SAP AG. Asignación de contextos y vinculación de datos Gráfico 138: Transporte de datos y contextos Se puede hacer referencia a las variables definidas en un contexto de controlador Web Dynpro desde otros controladores Web Dynpro.

In the Web Dynpro component you have displayed before (for example.Capítulo 7: Web Dynpro: Introducción TAW12_2 Al combinar estos dos conceptos. el transporte de datos entre los elementos de UI ubicados en diferentes vistas se puede definir de una manera puramente declarativa. NET310_UI_S2). The component controller usage is generated automatically when creating a new view. Cuando dos controladores dentro del mismo componente comparten datos mediante una relación de asignación. 10-07-2009 . Show context mapping. Open views. se dice que se produce una asignación interna. show the context of views and component controller. La asignación de contextos permite que a un nodo de contexto de un controlador se le suministren automáticamente datos de un nodo de contexto correspondiente de otro controlador. Éste es el mecanismo básico del uso compartido de datos entre controladores. Gráfico 139: Asignación de contextos Now you can go to the property tab of a view and show the entry for controller usage. 238 © 2009 SAP AG. Show UI elements that are bound to context attributes. Reservados todos los derechos.

y al nodo de contexto que se asigna se le denomina nodo asignado. deben realizarse en primer lugar los siguientes pasos: • • • Debe existir un nodo en el contexto del controlador que actúa como origen de asignación. Gráfico 140: Colocación de datos en la pantalla: Vinculación de datos La vinculación de datos es el medio por el que los datos se transportan automáticamente de un contexto del controlador de vistas a un elemento de UI con su layout y viceversa. Reservados todos los derechos.TAW12_2 Lección: Web Dynpro: Introducción Al nodo de contexto que actúa como fuente de datos se le conoce como el nodo de origen de asignación. La asignación entre contextos de controlador ubicados en distintos componentes de Web Dynpro se conoce como asignación externa. 239 . 10-07-2009 © 2009 SAP AG. El controlador de origen de asignación no debe ser un controlador de vistas. Nota: La asignación externa no se tratará en esta lección. El controlador que contenga el nodo asignado debe declarar la utilización del controlador de origen de asignación como controlador utilizado. Este nodo no debe tener ningún atributo o nodo subordinado declarado. Para que se establezca una relación de asignación.

El proceso de vinculación de datos separa el objeto del elemento de UI del código de aplicación dentro del controlador de vistas. el código de aplicación del controlador de vistas sólo tiene que manipular los valores de los nodos de contexto y atributos a los que están vinculados los elementos de UI. se visualizará un mensaje. Por consiguiente. Esto significa que las propiedades de los elementos de UI se pueden manipular desde el controlador de vistas actuando sobre los atributos de contexto. el framework de Web Dynpro gestiona las dos tareas siguientes: Open component NET310_UI_S2. Si se produce un error. para manipular propiedades de elementos de UI. Los elementos de UI son privados para el controlador de vistas en el que se han declarado. 10-07-2009 . La vinculación de datos es un potente instrumento ya que no sólo se puede vincular el valor de un elemento de UI a un atributo de contexto. • • El transporte de los datos desde el atributo de contexto hasta el elemento de UI durante el proceso de renderizado de la pantalla. A continuación. to show the data binding between an input field and a context attribute. Reservados todos los derechos. 240 © 2009 SAP AG. Or open a view of component NET310_COND_S. to show the data binding of a TABLE UI element to a context node. Los valores introducidos por el usuario para ello se convierten automáticamente y se verifica la conformidad del tipo. sino también otras propiedades como la visibilidad.Capítulo 7: Web Dynpro: Introducción TAW12_2 No se puede vincular elementos de UI a nodos de contexto o atributos definidos en otro controlador. Rellenar el atributo de contexto a partir del elemento de UI una vez que el usuario ha introducido los datos y se ha iniciado la siguiente petición al servidor.

que consta de varias vistas. Los puntos de navegación de entrada deberán denominarse en función de la razón por la que se está visualizando la vista. Los puntos de navegación de salida deberán denominarse en función de la acción que hizo desaparecer la navegación de la vista actual. Los eventos de navegación son eventos asincrónicos especiales que se colocan en una cola de navegación. Los puntos de navegación de entrada son métodos de programa de control de eventos especiales que se suscriben a los eventos de navegación que se producen al activarse puntos de navegación de salida. Reservados todos los derechos. A partir de este momento. La cola de navegación se procesa en un momento concreto de la fase de procesamiento de Web Dynpro. Esto sólo tiene lugar una vez que las vistas del conjunto de vistas actual han activado sus puntos de navegación de salida y no se ha producido ningún error de validación que pueda cancelar la navegación. Al activar un punto de navegación de salida se produce un evento de navegación.TAW12_2 Lección: Web Dynpro: Introducción Navegación entre vistas Gráfico 141: Navegación entre vistas La navegación entre vistas se desencadena activando puntos de navegación de salida. Puede utilizarse para definir la siguiente UI. Se pueden disparar varios puntos de navegación de salida desde una vista. Los métodos de punto de navegación de entrada se llaman únicamente cuando se procesa la cola de navegación. 241 . o bien se puede eliminar toda la pila de navegación. 10-07-2009 © 2009 SAP AG. la pila de navegación se puede ampliar activando puntos de navegación de salida adicionales.

Ventanas y vistas anidadas Gráfico 142: Ventanas y vistas anidadas Una ventana define qué vistas se visualizan en qué combinación y cómo se puede modificar la combinación de vistas mediante la activación de puntos de navegación de salida. Reservados todos los derechos. Los puntos de navegación de entrada y salida se unen mediante enlaces de navegación. Los puntos de navegación de salida y los métodos de programa de control de eventos relacionados con el punto de navegación de entrada pueden tener parámetros. se definen tres cosas: 242 © 2009 SAP AG. Por lo tanto. lo que le permite transferir datos entre las vistas. cuando se crea una ventana.Capítulo 7: Web Dynpro: Introducción TAW12_2 Open any view of component NET310_UI_S2 and show plugs. 10-07-2009 . enlazar un punto de navegación de entrada a un punto de navegación de salida significa registrar el método de programa de control de eventos de punto de navegación de entrada en el evento de navegación que se ha llamado activando un punto de navegación de salida. Técnicamente.

Sólo se puede visualizar una vista a la vez en el área de visualización. • • • Todas las vistas posibles que podrían existir en la interfase visual del componente deben incrustarse en la ventana. se incrustan (incrustación anidada) todas las vistas posibles para esta área de visualización.TAW12_2 Lección: Web Dynpro: Introducción Open window D1_WIND of component NET310_NAVI_D1 and show how plugs are linked via navigation links. el layout y la posición de dichas vistas se definirá mediante una vista especial que contiene ViewContainerUIelements en su layout. Open window D2_WIND of component NET310_NAVI_D1 and show how a view can be embedded in a view container. Reservados todos los derechos. Si se requiere la visualización de varias vistas en paralelo. Los enlaces de navegación se deben definir entre vistas para que se sustituya el contenido de un área de visualización. dentro de cada área definida por un ViewContainerUIelement. Explain view assembly. Esta vista de contenedor se incrusta en la ventana y. 10-07-2009 © 2009 SAP AG. Existe una vista por defecto en el inicio para cada ViewContainerUIelement. Las áreas de visualización se pueden dejar vacías mediante la creación de una vista vacía cuyo punto de navegación de entrada responda a un evento de navegación adecuado. Gráfico 143: Conjunto de vistas Los puntos de navegación de salida son los que hacen que un área de visualización contenga una vista en particular. Se deben definir los enlaces de navegación entre las diferentes vistas. 243 .

Create a view and embed it into the window. en la que se incrustan varias vistas en áreas de visualización. 10-07-2009 . Save this package in the transport request created prior to the course. add a TextView UI element to your view and enter text. La permutación que es visible depende de qué enlaces de navegación sigue el usuario. create your first WD component. podrían verse muchas permutaciones de vistas. Activate the component with all entities and start the application. Exercise “Web Dynpro: Introduction” Arquitectura de Web Dynpro: Relación entre entidades Web Dynpro Gráfico 144: Model View Controller (MVC) 244 © 2009 SAP AG. At the end of this section. Finally. Start by creating a package. Reservados todos los derechos.Capítulo 7: Web Dynpro: Introducción TAW12_2 En una definición de ventana dada. Create an application to access the component. Create a WD component with a window in your package. El subconjunto de vistas continuamente visibles se conoce como conjunto de vistas.

Arquitectura del componente Web Dynpro Gráfico 145: Entidades Web Dynpro visibles internamente (1) One view can be embedded into different windows. La primera implementación de este paradigma de diseño se produjo con el lanzamiento del lenguaje de programación Smalltalk-80. MVC fue un paradigma de diseño revolucionario porque supuso el primero que describió componentes de software en términos de: • • Las responsabilidades funcionales que cada uno debe cumplir Los protocolos de mensaje a los que cada componente debe responder SAP ha modificado y ampliado la especificación MVC original para crear el grupo de herramientas Web Dynpro. Reservados todos los derechos. The first view that is embedded into a window will be the default view. 10-07-2009 © 2009 SAP AG. La arquitectura de un componente Web Dynpro se puede dividir en dos partes: visibilidad interna y externa. 245 . In your WD component: Create a second view and embed it into the window.TAW12_2 Lección: Web Dynpro: Introducción Web Dynpro de SAP está construido sobre las bases del paradigma de diseño de Model View Controller (MVC). MVC fue inventado originariamente por el diseñador de software noruego Trygve Reenskaug cuando trabajaba en Xerox PARC a finales de los años 70. La línea discontinua horizontal de la figura anterior separa las entidades que son visibles desde fuera del componente de las que son sólo visibles dentro del componente.

In your component: Create a second window. No obstante. NET310_NAVI_D1). Un controlador de ventanas puede contener puntos de navegación. Sometimes it is useful to access business logic from a view (input check: does a data record exist that fits the user’s input?). Una ventana incluye una o más vistas y tiene un controlador de ventanas correspondiente. no es posible navegar entre ventanas del mismo componente. métodos y un contexto. Embed both views that have been embedded before into the first window. 10-07-2009 . Cada vista puede estar incrustada en varias ventanas. métodos y un contexto. generadas por el framework de Web Dynpro y transferidas al mandante. Reservados todos los derechos. Un vista consta de un layout de visualización y del controlador de vistas correspondiente.Capítulo 7: Web Dynpro: Introducción TAW12_2 Las partes visibles internamente se pueden dividir en entidades visuales y entidades de programación. El controlador de vistas puede contener puntos de navegación. 246 © 2009 SAP AG. El punto de navegación de salida de una ventana se puede conectar a cualquier punto de navegación de entrada de las vistas incrustadas y el punto de navegación de salida de una vista puede conectarse a cualquier punto de navegación de entrada de la ventana incrustada. Las entidades visuales son aquellas relativas a la UI. Las entidades visibles internamente constan de ventanas y vistas. Gráfico 146: Entidades Web Dynpro visibles internamente (2) Multiple windows may exist (for example.

Las declaraciones de utilización entre los controladores le permiten acceder a los métodos y datos de contexto del controlador declarado (controlador utilizado). Un controlador de vistas no se puede declarar como controlador utilizado para otros controladores ya que violaría el código de buenas prácticas de programación (paradigma de programación MVC). create a usage declaration for the component controller and vice versa. Estos controladores se pueden utilizar para modularizar el contenido del componente. 247 . los controladores personalizados pueden actuar como controladores locales para algunas vistas. 10-07-2009 © 2009 SAP AG. Reservados todos los derechos. Gráfico 147: Entidades Web Dynpro visibles internamente (3) In your component: Create a custom controller. La lógica de programa relacionada únicamente con una vista determinada (por ejemplo. Por ejemplo. o bien se pueden utilizar para encapsular la lógica relativa a cierta clase de modelo (lógica empresarial). In the custom controller.TAW12_2 Lección: Web Dynpro: Introducción El controlador de componentes actúa como controlador global del componente. verificar la entrada del usuario) debería estar codificada en el controlador de vista relevante. La lógica empresarial no debe formar parte del componente Web Dynpro. Esto le permite reducir el contenido del controlador de componentes completando subfunciones con datos. Es preferible que las clases ABAP se utilicen para encapsular el código fuente relacionado. sino que debe definirse fuera del componente para tener una reutilización alta. Los controladores personalizados son controladores opcionales que debe definir el desarrollador.

el componente superior puede declarar la utilización de un componente subordinado. Las únicas partes de un componente Web Dynpro que son visibles para el usuario son el controlador de interfase y las vistas de interfase.Capítulo 7: Web Dynpro: Introducción TAW12_2 Gráfico 148: Entidades Web Dynpro visibles externamente Si un componente Web Dynpro (componente superior) necesita acceder a otro componente Web Dynpro (componente subordinado). 248 © 2009 SAP AG. Reservados todos los derechos. 10-07-2009 . Entonces se crea una instancia de utilización de un componente específico y el componente superior accede a las funciones del componente subordinado mediante su controlador de interfase de componente.

TAW12_2

Lección: Web Dynpro: Introducción

In your component: Display the component interface. An interface view has
been created for each window. An interface controller has also been created
automatically.

Todos los componentes Web Dynpro tienen un único controlador de
interfase. Mediante el controlador de interfase, se puede acceder a los datos,
métodos y programas de control de eventos desde otros componentes.
Las interfases de vistas representan la interfase visual de un componente
Web Dynpro. Existe una relación directa entre una ventana y una vista de
interfase. Cada vez que se define una ventana, se genera automáticamente
una vista de interfase relacionada que permite acceder a la ventana desde
fuera del componente. La vista de interfase sólo muestra al usuario del
componente los puntos de navegación de entrada y salida que tienen la
propiedad interfase activada. No se puede acceder a los métodos y datos de
contexto de la ventana mediante la vista de interfase relacionada.
Si el componente no tiene vistas, no es necesario que tenga ventanas.
En este caso, el componente no implementa una vista de interfase. A
los componentes que no tienen ninguna interfase visual se les llama
componentes anónimos.

Gráfico 149: Aplicación Web Dynpro

Una aplicación Web Dynpro es un punto de entrada en un componente Web
Dynpro y es la única entidad Web Dynpro que se puede direccionar por URL.

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

249

Capítulo 7: Web Dynpro: Introducción

TAW12_2

In your component: Display the application characteristics. An application is
pointing to a startup plug of an interface view located in a certain WD component.

Existe frecuentemente (pero no siempre) una relación directa entre una interfase
de vista y una aplicación.
Del mismo modo que se puede acceder a la funcionalidad de un modulpool ABAP
mediante la definición de varios códigos de transacción, se puede acceder a la
funcionalidad de un componente Web Dynpro individual mediante la definición de
varias aplicaciones, cada una de ellas con acceso a una vista de interfase diferente
y/o a un punto de navegación de entrada diferente de la vista de interfase.
Para definir una aplicación Web Dynpro, debe especificar:

250

Componente que se debe llamar. Este componente se conoce como
componente raíz
Vista de interfase del componente raíz que se debe usar. Las vistas
predeterminadas en esta vista de interfase definen el conjunto de la vista
predeterminada.
El punto de navegación de entrada que actuará como punto de entrada para la
vista de interfase designada (este punto de navegación de entrada debe ser
del tipo Inicio).

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2

227

Lección: Web Dynpro: Introducción

Ejercicio 13: Web Dynpro: Introducción
Duración del ejercicio: 20 Minutos

Objetivos de los ejercicios
Al finalizar este ejercicio podrá:

Crear un componente Web Dynpro con una ventana Web Dynpro que
contenga una vista Web Dynpro individual

Colocar un elemento de UI simple en el layout de visualización y tratar
sus propiedades

Crear una aplicación Web Dynpro para hacer que la vista esté disponible
para los usuarios

Ejemplo empresarial
Desea desarrollar una aplicación Web Dynpro. Empezará creando las entidades
Web Dynpro que se necesitan para una aplicación que muestra una vista con un
campo de texto simple.
Modelo: Ninguno
Solución: NET310_INTR_S

Tarea 1:
Crear un paquete que contenga todos los objetos de repositorio que va a desarrollar.
1.

Cree el paquete ZNET310_##. Asigne el componente de aplicación BC-WD
y el componente de software HOME.

Tarea 2:
Cree un componente Web Dynpro con una ventana Web Dynpro.
1.

Cree el componente Web Dynpro ZNET310_INTR_## con una ventana
principal MAIN_WINDOW.

Continúa en la página siguiente

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

251

Capítulo 7: Web Dynpro: Introducción

2.

TAW12_2

¿Qué otras entidades Web Dynpro se han creado automáticamente en este
paso?

Tarea 3:
Cree una vista Web Dynpro con un elemento TEXTVIEW simple y hágala formar
parte de la ventana principal.
1.

Cree una vista Web Dynpro (nombre propuesto: MAIN_VIEW) en su
componente.

2.

Cree un elemento de UI simple de tipo TEXTVIEW (nombre propuesto:
TEXT_VIEW_1) en el layout de visualización y trate sus propiedades.

3.

Actualice el texto que deberá visualizar en el elemento TEXTVIEW. Es
posible que desee modificar otras propiedades del elemento y ver el resultado
en la presentación preliminar de layout.

4.

Haga que la vista Web Dynpro forme parte de la ventana Web Dynpro.

Tarea 4:
Cree una aplicación Web Dynpro para acceder a su componente Web Dynpro
y realice un test.

252

1.

Cree una aplicación Web Dynpro (nombre propuesto: ZNET310_INTR_##)
que tenga acceso a la ventana principal de su componente Web Dynpro.

2.

Active el componente Web Dynpro y pruebe la aplicación Web Dynpro.

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2

Lección: Web Dynpro: Introducción

Solución 13: Web Dynpro: Introducción
Tarea 1:
Crear un paquete que contenga todos los objetos de repositorio que va a desarrollar.
1.

Cree el paquete ZNET310_##. Asigne el componente de aplicación BC-WD
y el componente de software HOME.
a)

Realice este paso como esperamos que ya lo haya hecho con frecuencia
anteriormente.

Tarea 2:
Cree un componente Web Dynpro con una ventana Web Dynpro.
1.

2.

Cree el componente Web Dynpro ZNET310_INTR_## con una ventana
principal MAIN_WINDOW.
a)

En el área de navegación, abra el menú contextual del paquete
y seleccione Crear → WebDynpro → Componente WebDynpro
(interfase).

b)

En el cuadro de diálogo, introduzca el nombre del componente, una
descripción y el nombre de la ventana principal.

¿Qué otras entidades Web Dynpro se han creado automáticamente en este
paso?
Respuesta:
Un controlador de componentes
Un controlador de interfase
Una vista de interfase para la ventana con su interfase de objetos
ZIWCI_NET310_INTR_##

Tarea 3:
Cree una vista Web Dynpro con un elemento TEXTVIEW simple y hágala formar
parte de la ventana principal.
1.

Cree una vista Web Dynpro (nombre propuesto: MAIN_VIEW) en su
componente.
a)

En el menú contextual del componente Web Dynpro, seleccione Crear
→ Vista.

b)

Introduzca el nombre de la vista y una descripción breve.

Continúa en la página siguiente

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

253

Capítulo 7: Web Dynpro: Introducción

2.

3.

4.

TAW12_2

Cree un elemento de UI simple de tipo TEXTVIEW (nombre propuesto:
TEXT_VIEW_1) en el layout de visualización y trate sus propiedades.
a)

Trate su vista Web Dynpro MAIN_VIEW y abra la ficha Layout.

b)

En la pantalla de la jerarquía de elementos de UI
(esquina superior derecha), abra el menú contextual de
ROOTUIELEMENTCONTAINER y seleccione Insertar elemento.

c)

Introduzca el nombre del elemento y el tipo de elemento: TEXTVIEW.

Actualice el texto que deberá visualizar en el elemento TEXTVIEW. Es
posible que desee modificar otras propiedades del elemento y ver el resultado
en la presentación preliminar de layout.
a)

Haga doble clic en el elemento TEXTVIEW de la jerarquía de
elementos de UI.

b)

En la lista Propiedades (debajo de la jerarquía de elementos de UI)
actualice el texto del campo texto.

Haga que la vista Web Dynpro forme parte de la ventana Web Dynpro.
a)

Trate la ventana Web Dynpro y abra la ficha Ventana.

b)

En la estructura de la ventana, abra el menú contextual de la ventana
Web Dynpro y seleccione Integrar vista.

c)

En el cuadro de diálogo, introduzca el nombre de la vista.

Tarea 4:
Cree una aplicación Web Dynpro para acceder a su componente Web Dynpro
y realice un test.
1.

2.

254

Cree una aplicación Web Dynpro (nombre propuesto: ZNET310_INTR_##)
que tenga acceso a la ventana principal de su componente Web Dynpro.
a)

En el área de navegación, abra el menú contextual del componente Web
Dynpro y seleccione Crear → Aplicación Web Dynpro.

b)

Verifique el nombre de la aplicación (el mismo nombre que el
componente) e introduzca una descripción en la ventana de diálogo.

Active el componente Web Dynpro y pruebe la aplicación Web Dynpro.
a)

Abra el Componente Web Dynpro y actívelo.

b)

Abra la Aplicación Web Dynpro y realice un test.

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2

Lección: Web Dynpro: Introducción

Resumen de la lección
Ahora podrá:

Describir el enfoque de programación declarativo utilizado para crear
aplicaciones Web Dynpro.

Explicar las ventajas de este enfoque de los metadatos.

Enumerar los elementos más importantes que forman parte de una aplicación
Web Dynpro y que se pueden definir de forma declarativa.

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

255

Resumen del capítulo

TAW12_2

Resumen del capítulo
Ahora podrá:

Describir el enfoque de programación declarativo utilizado para crear
aplicaciones Web Dynpro.

Explicar las ventajas de este enfoque de los metadatos.

Enumerar los elementos más importantes que forman parte de una aplicación
Web Dynpro y que se pueden definir de forma declarativa.

256

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

Contenido del capítulo Lección: Controladores Web Dynpro... los controladores personalizados................. Dynamic Modifications at Runtime).258 Ejercicio 14: Controladores Web Dynpro... Reservados todos los derechos. 257 ... So focus on giving an overview of the entities of a controller and describe what these entities are used for. Definir la función de cada entidad de controlador..... Sólo podrá programar lógica de proceso si sabe cómo se definen los controladores y qué tipo de entidades ofrecen.......... los controladores de vistas y los controladores de ventanas...269 10-07-2009 © 2009 SAP AG...... Some topics such as the special hook methods that only exist for view controllers or component controllers will be discussed in the relevant chapter (for example.. Enumerar las diferencias entre el controlador de componentes..... Este capítulo ofrece una breve introducción a los controladores de Web Dynpro ABAP....Capítulo 8 Controladores Web Dynpro 233 Not every detail of Web Dynpro controllers is covered in this chapter..... Resumen del capítulo Los controladores contienen el código fuente de una aplicación Web Dynpro.... Objetivos del capítulo Al finalizar este capítulo podrá: • • • Asignar nombre al contenido de un controlador Web Dynpro......... contienen los datos contextuales y se encargan del tratamiento de eventos y de la navegación. Controller and Context Programming. y se centra en las diferencias entre los tipos de controlador que puede haber en un componente de Web Dynpro.......

Objetivos de la lección Al finalizar esta lección podrá: • • • Asignar nombre al contenido de un controlador Web Dynpro. la reacción de implementación del método de puntos de navegación de entrada de los eventos del mandante. etc. and so on. Reservados todos los derechos. Enumerar las diferencias entre el controlador de componentes. En esta lección se ofrece un resumen de las entidades que componen un controlador. es necesario conocer la estructura interna de los controladores. los controladores personalizados. los controladores de vistas y los controladores de ventanas.Capítulo 8: Controladores Web Dynpro Lección: 234 TAW12_2 Controladores Web Dynpro Duración de la lección: 40 Minutos Resumen de la lección Los controladores son el núcleo de los componentes Web Dynpro. 258 © 2009 SAP AG. Definir la función de cada entidad de controlador. 10-07-2009 . with a view embedded in one window. a custom controller and a WD application.. Ejemplo empresarial Ya conoce las ventanas. para implementar la lógica de proceso. because these details will be explained in the relevant chapters of course NET310. No obstante. que incluye la gestión de eventos. For the demos. las vistas y los controladores que componen un programa Web Dynpro. it is assumed that you have created a WD component before. special hook methods. Do not go into detail about the order of hook methods. ya que los datos y la lógica de programa se definen en estas entidades.

Sólo es necesario si el componente correspondiente implementa una configuración especial y funciones de personalización. En tiempo de ejecución. Por ello. el código fuente en un controlador personalizado no debería depender de la existencia de otros controladores personalizados. pero el controlador de configuración no puede acceder a ningún otro controlador. Este controlador se puede utilizar para gestionar los datos transferidos mediante los puntos de navegación de entrada cuando se reutiliza como controlador subordinado. • Controladores personalizados Los controladores personalizados son opcionales. Deben definirse en la fase de diseño y se pueden utilizar para encapsular subfunciones del controlador de componentes. En consecuencia. Los controladores personalizados se instancian automáticamente mediante el framework de Web Dynpro sin la secuencia de instanciación en definición. • Controladores de vistas Cada vista consta de la parte de layout y de exactamente un controlador de vistas. • Controladores de ventanas Cada ventana tiene exactamente un controlador de ventanas. 10-07-2009 © 2009 SAP AG. Se puede llamar los métodos de este controlador desde los métodos de punto de navegación de entrada de la ventana. visible para todos los demás controladores. verifica la entrada de usuario y gestiona las acciones de usuario. no es posible incrustar una vista en un conjunto de vistas más de una vez. 259 . Este controlador no tiene interfase visual. Estos tipos de controladores distintos abarcan varias entidades: • Controlador de componentes Sólo existe un controlador de componentes para cada componente Web Dynpro. El controlador de componentes dirige las funciones de todo el componente. por ejemplo. todas las instancias del controlador son singleton con respecto a sus componentes superiores. • Controlador de configuración Éste es un controlador personalizado especial. Reservados todos los derechos. Cualquier controlador puede acceder al controlador de configuración. Se pueden definir varios controladores personalizados en un componente.TAW12_2 Lección: Controladores Web Dynpro Tipos de controlador Existen cuatro tipos de controladores en un componente Web Dynpro ABAP. Se trata de un controlador global. Este controlador gestiona la lógica de proceso específica de la vista. Esto es verdadero también en el caso de los controladores de vistas. Sólo puede existir una sola configuración en cualquier componente.

por lo que la duración de las instancias del controlador no está limitada al tiempo utilizado para procesar el código del programa y la UI. el tiempo de ejecución de Web Dynpro instancia el controlador de componentes. Controladores de ventanas La instanciación de un controlador de ventanas se pospone hasta que se llama al primer método del controlador. La vida útil de un controlador de vistas se puede controlar mediante las propiedades de visualización: Si se selecciona marco controlado. el contexto de controlador. Web Dynpro es una tecnología implementada dinámicamente. Las instancias del controlador de ventanas no se pueden eliminar explícitamente. Si se selecciona cuando esté visible. Su duración equivale a la duración del componente. En función del tipo de controlador. un controlador de vistas no se puede declarar como controlador utilizado. por lo que los datos de contexto y los métodos de un controlador de vistas son siempre privados. Esto se realiza iniciando una aplicación Web Dynpro o incrustando la vista de interfase relacionada en la ventana del componente superior. Controladores personalizados La instanciación de un controlador personalizado se pospone hasta que se llama al primer método del controlador. la duración de la instancia de controlador es la siguiente: Controlador de componentes La vida útil del controlador de componentes equivale a la vida útil del componente. Reservados todos los derechos. Controladores de configuración Este controlador se instancia como primer controlador del componente. Las instancias del controlador personalizado no se pueden eliminar explícitamente. El nodo raíz de contexto ya existe. Este contexto y los métodos definidos en un controlador son privados a menos que otro controlador declare de manera explícita la utilización de dicho controlador. Entidades de controlador comunes Cada controlador tiene su propio contexto. Controladores de vistas La instanciación de un controlador de vistas se pospone hasta que se llama al primer método del controlador. Todos los demás nodos y atributos se deben definir estáticamente o por código fuente.Capítulo 8: Controladores Web Dynpro TAW12_2 Los datos globales de un controlador se almacenan en un almacén de datos jerárquico. No obstante. la instancia de vista se eliminará con el componente. 260 © 2009 SAP AG. la instancia de vista se eliminará en cuanto la vista deje de pertenecer al conjunto de vistas. 10-07-2009 . Al iniciar una aplicación Web Dynpro.

En todos los controladores. que se utilizan para acceder a las funciones del controlador (WD_THIS) y del contexto (WD_CONTEXT). Existen dos atributos predefinidos. Add an attribute and a method to any of the controllers located in your demo component. 261 . Existen al menos dos métodos de conexión incluidos en todos los tipos de controlador. 10-07-2009 © 2009 SAP AG. Estos atributos se visualizan en todos los métodos de este controlador. Los atributos que no están relacionados con el valor o la propiedad de elementos de UI se pueden declarar mediante la ficha Atributos. Reservados todos los derechos. Los métodos de instancia se pueden definir mediante la ficha Métodos. Estos métodos se procesan sólo una vez durante la duración de una instancia de controlador: cuando se crea una instancia de controlador (wddoinit( )) y cuando se elimina una instancia de controlador (wddoexit( )). to demonstrate which entities are contained in all of these controllers.TAW12_2 Lección: Controladores Web Dynpro Gráfico 150: Componentes de todos los controladores Display the component controller of the component NET310_EVEN_D1. A estos métodos se les denomina métodos de conexión. Show how to add a controller usage declaration to one of the controllers. el framework de Web Dynpro llama los métodos en un orden predefinido. hay disponibles diversos métodos de conexión. En función del tipo de controlador. Click the single tabs to display the common controller entities. Open a view controller and the window controller of this component.

Un controlador de vistas no es responsable de generar los datos que visualiza. Entidades especiales de componente / Controladores personalizados Gráfico 151: Controladores de componentes/personalizados: entidades especiales 262 © 2009 SAP AG. desde los métodos de todos los controladores. como los módulos de funciones. No se debe especificar bajo ningún concepto el nombre de un controlador de vistas como controlador utilizado. Este tipo de uso compartido de datos se utiliza frecuentemente cuando se desea crear un nodo de contexto asignado o acceder a los métodos de instancia de otro controlador. Esa tarea es una función del controlador personalizado. un controlador debe declarar la utilización de otro controlador. ya que se violarían los principios de diseño MVC. 10-07-2009 . Esto se lleva a cabo en la ficha Propiedades del controlador que necesita acceder a otro controlador. Un controlador de vistas se debe escribir de manera que sea únicamente responsable de la visualización de los datos y la interacción del usuario. Se puede acceder a la lógica empresarial. los BAPI o los métodos en clases auxiliares. Reservados todos los derechos.Capítulo 8: Controladores Web Dynpro TAW12_2 Para compartir información entre varios controladores.

el orden en el que se ejecutarán será indefinido. 263 . Los atributos. 10-07-2009 © 2009 SAP AG. También tiene la opción adicional de implementar una suscripción de evento dinámico en tiempo de ejecución. elementos de contexto y eventos pueden marcarse como elementos de interfase. Éstos se llaman directamente antes de que se procesen las solicitudes de navegación (wddobeforenavigation( )) y después de que se hayan procesado todas las vistas del conjunto de vistas que se deben enviar (wddopostprocessing( )). El controlador de componentes. Atención: Si dos o más métodos se suscriben al mismo evento. se pueden definir eventos mediante parámetros arbitrarios. Define an event handler method in the component controller and register this method to the custom controller event. Cualquier método de cualquier otro controlador. incluidos los controladores de vistas y de ventanas. se puede registrar en estos eventos si dicho método se ha definido como método auxiliar de eventos. métodos. el framework de Web Dynpro lleva a cabo automáticamente la definición. y sólo él.TAW12_2 Lección: Controladores Web Dynpro Create an event in the custom controller of your component. Tanto para controladores de componentes como para personalizados. Una utilización típica de dichos eventos es la activación del procesamiento en un controlador de vistas una vez finalizado el procesamiento en el controlador de componentes. Reservados todos los derechos. Define a controller usage of the custom controller in the component controller. dispone de los siguientes métodos de conexión estándar adicionales. Mediante sus declaraciones en la fase de diseño. Estos elementos se muestran entonces a otros componentes mediante el controlador de interfase. la activación y la gestión de la suscripción a dichos eventos. Esto se puede realizar cuando un método del controlador de vistas se suscribe a un evento provocado por el controlador de componentes.

For each of the views: Create the action and the fire_plug statement by entering the action’s name to the onAction property of the button. 264 © 2009 SAP AG. Go back to the window and add navigation links. Add an outbound plug and an inbound plug to each of the views (no plug parameters). so navigation back and forth between the views is possible. Se emite un evento de navegación cuando se activa un punto de navegación de salida. Reservados todos los derechos. A éstos se les denomina puntos de navegación.Capítulo 8: Controladores Web Dynpro TAW12_2 Entidades especiales de los controladores de vistas Gráfico 152: Controladores de vistas: entidades especiales Your application: Create a second view and embed this view in your window. Test the application. Add a button to each of the views to trigger the navigation. 10-07-2009 . Los eventos especiales de navegación y los programas de control de eventos de navegación se han creado para permitir la navegación entre varios controladores de vistas Web Dynpro. Un controlador de vistas es un bloque de construcción visual de un componente Web Dynpro y está diseñado para gestionar todos los aspectos de la visualización de datos y la interacción del usuario. Demonstrate that the WDCOMPCONTROLLER attribute is generated automatically for each controller if the component controller is added to the used controller list.

Si se sustituye una vista como resultado de un evento de mandante. Un punto de navegación de entrada es un programa de control de eventos de navegación que puede estar registrado en una solicitud de navegación. un controlador de vistas tiene una referencia al controlador de componentes de su componente: WD_COMP_CONTROLLER . los métodos wddobeforeaction( ) se ejecutan para todas las vistas que forman parte del último conjunto de vistas. Reservados todos los derechos. Se pueden encontrar dos métodos de conexión especiales en los controladores de vistas: • wddobeforeaction( ) se procesa si se activa un evento de mandante en cualquier vista. Este método sólo está visible para el framework de Web Dynpro. Los enlaces de navegación no forman parte de una vista pero se definen en una ventana incrustada en la vista. este método se llamará FIRE_<punto de navegación de salida>_PLG. Esta referencia se puede utilizar para acceder a las funciones relacionadas con el controlador de componentes. seleccionar un pulsador en un browser) a un método de programa de control de eventos definido en el controlador de vistas correspondiente. Antes de que se procesen los métodos de programa de control de eventos de la acción. Cuando se define una acción con el nombre <Acción>. Este evento se puede utilizar para definir la UI dinámicamente. Una acción enlaza un evento del mandante (por ejemplo. 265 . La declaración de un punto de navegación de entrada activa la generación de un método en un controlador de componentes de vista. este método se llamará HANDLE_<punto de navegación de entrada>. Si el nombre genérico <punto de navegación de entrada> se usa para un punto de navegación de entrada. se genera automáticamente un método de programa de control de eventos (ONACTION<Acción>). el registro de eventos se puede definir de manera diferente en varias ventanas. Además de los atributos estándar de todos los controladores. 10-07-2009 © 2009 SAP AG. A un registro estático de un punto de navegación de entrada (método HANDLE<punto de navegación de entrada>) al evento de navegación producido por un punto de navegación de salida (método FIRE_<punto de navegación de salida>_PLG) se le denomina enlace de navegación. Si el nombre genérico <punto de navegación de salida> se usa para un punto de navegación de salida.TAW12_2 Lección: Controladores Web Dynpro La declaración de un punto de navegación de salida activa la generación de un método en un controlador de componentes de vista. Por consiguiente. el punto de navegación de salida relacionado se puede activar en este método de programa de control de eventos de la acción. El desarrollador no puede verlo. • wddomodifyview( ) es un método que le permite manipular el layout de la vista desde la perspectiva de la programación. Se utiliza cuando se accede a los mensajes o cuando se llama a un método declarado en el controlador de componentes.

only the lifetime of the views is different. WDDOEXIT is only processed if the view is deleted. Reservados todos los derechos. Gráfico 153: Arquitectura del controlador de ventanas 266 © 2009 SAP AG. Entidades especiales de los controladores de ventanas Los controladores de ventanas son muy similares a los controladores de vistas. Discuss the order in which the events are processed. es como un controlador de vistas sin una UI (layout de visualización). Todas las vistas que se visualizarán cuando se utilice una aplicación Web deben incrustarse en la ventana a la que la aplicación o el componente que llama hacen referencia. 10-07-2009 . you could also demonstrate the influence of the view’s lifetime property on the lifetime of the view.Capítulo 8: Controladores Web Dynpro TAW12_2 Start demo NET310_EVEN_D1. Repeat the discussion with demo NET310_EVEN_D2 Here. this method will not be processed again. Start the WD applications NET310_NAVI_D2 and NET310_NAVI_D2A. If the view survives a navigation request. Técnicamente. The related components are identical. The layout displays how often the WDDOINIT hook method is processed.

you should discuss the applications NET310_NAVI_D1 and NET310_NAVI_D1_. Having demonstrated this. Reservados todos los derechos. Define the navigation so that clicking on the button of the start view in VC1 will replace the empty view in VC2 with the result view. y vistas. Also include an empty view in VC2 and make it the default view in this view container. followed by NET310_NAVI_D1A (using window plugs for navigation) and NET310_NAVI_D1B (using main view plugs for navigation. Puede utilizar los puntos de navegación para establecer la navegación entre componentes. A continuación. the empty view will be displayed again in VC2. Exercise “Web Dynpro Controllers” 10-07-2009 © 2009 SAP AG. El controlador de ventanas también dispone del atributo especial WD_COMP_CONTROLLER. si están definidos estáticamente. Embed the existing start view in VC1 and embed the existing result view in VC2.TAW12_2 Lección: Controladores Web Dynpro Your component: Create a new view consisting of two view containers. 267 . When you select the Back button in the result view in VC2. VC1 and VC2. los enlaces de navegación que definen los conjuntos de vistas posibles. La ventana Web Dynpro contiene la estructura de todas las vistas que se deben visualizar y. que contiene la referencia al controlador de componentes. Para mostrar los puntos de navegación a la interfase del componente. pass state information using plugs). active la propiedad Interfase de cada punto de navegación. Embed this view in the window and make it the default view. Cada ventana Web Dynpro contiene puntos de navegación de salida y de entrada. estos puntos de navegación formarán parte de la vista de interfase relacionada.

TAW12_2 10-07-2009 .Capítulo 8: Controladores Web Dynpro 268 © 2009 SAP AG. Reservados todos los derechos.

269 . 1. cree un punto de navegación de salida (nombre propuesto: TO_OUTPUT_VIEW) y un punto de navegación de entrada (nombre propuesto: FROM_OUTPUT_VIEW). Desea proporcionar pulsadores en sus vistas para permitir al usuario iniciar la navegación a la siguiente vista. Modelo: Ninguno Solución: NET310_CTRL_S Tarea 1: Crear un componente Web Dynpro con una ventana Web Dynpro que contenga dos vistas Web Dynpro. Ejemplo empresarial Desea desarrollar una aplicación Web Dynpro con más de una vista. Cree el componente Web Dynpro ZNET310_CTRL_## con una ventana principal MAIN_WINDOW. Defina dos enlaces de navegación entre las dos vistas. Para su primera vista (INPUT_VIEW). que vayan del punto de navegación de salida de una vista al punto de navegación de entrada de la otra vista. Cree dos vistas Web Dynpro (nombres propuestos: INPUT_VIEW y OUTPUT_VIEW) dentro de su componente e incrústelos en su ventana. 2. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. Tarea 2: Cree un punto de navegación de salida y otro de entrada para cada vista.TAW12_2 243 Lección: Controladores Web Dynpro Ejercicio 14: Controladores Web Dynpro Duración del ejercicio: 30 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Crear pulsadores en vistas Web Dynpro. • Conseguir que el usuario active acciones mediante la selección de pulsadores. Reservados todos los derechos. 1. • Implementar la navegación entre vistas Web Dynpro.

5. 270 1. ¿Qué nuevas partes se han creado en el controlador de vistas al finalizar el paso anterior (consulte las diferentes fichas del editor de vistas)? 3. 2. Cree una aplicación Web Dynpro para su componente. Reservados todos los derechos. actívela y realice un test. ¿Qué nuevas partes se han creado en el controlador de vistas al finalizar el paso anterior (consulte las diferentes fichas del editor de vistas)? 4. 3. 5. Cree un elemento de UI simple de tipo BUTTON (nombre propuesto: BUTTON_GO) en la primera vista y actualice el texto que se deberá visualizar sobre el pulsador. 10-07-2009 . Cree un pulsador en la segunda vista (nombre propuesto: BUTTON_BACK) con texto y acción (nombre propuesto: BACK) y enlácelo al punto de navegación de salida de esa vista. Defina un enlace de navegación desde el punto de navegación de salida de la segunda vista (TO_INPUT_VIEW) al punto de navegación de entrada de la primera vista (FROM_OUTPUT_VIEW). Tarea 3: Cree un pulsador en cada una de las dos vistas y asegúrese de que el punto de navegación de salida de la vista respectiva se active cuando el usuario seleccione el pulsador. 4.Capítulo 8: Controladores Web Dynpro TAW12_2 2. Defina un enlace de navegación desde el punto de navegación de la primera vista (TO_OUTPUT_VIEW) al punto de navegación de entrada de la segunda vista (FROM_INPUT_VIEW). © 2009 SAP AG. Haga lo mismo para su otra vista (nombres propuestos para los puntos de navegación: TO_INPUT_VIEW y FROM_INPUT_VIEW). Cree una acción para el pulsador (nombre propuesto: GO) y relaciónelo con el punto de navegación de salida de la vista (TO_OUTPUT_VIEW).

3. Para su primera vista (INPUT_VIEW). Continúa en la página siguiente 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: Controladores Web Dynpro Solución 14: Controladores Web Dynpro Tarea 1: Crear un componente Web Dynpro con una ventana Web Dynpro que contenga dos vistas Web Dynpro. c) Seleccione la ficha Puntos de navegación de entrada e introduzca el nombre del punto de navegación de entrada y una descripción. a) Realice este paso como antes. cree un punto de navegación de salida (nombre propuesto: TO_OUTPUT_VIEW) y un punto de navegación de entrada (nombre propuesto: FROM_OUTPUT_VIEW). 1. ¿Qué nuevas partes se han creado en el controlador de vistas al finalizar el paso anterior (consulte las diferentes fichas del editor de vistas)? Respuesta: Método de programa de control de eventos “HANDLEFROM_OUTPUT_VIEW” (vacío). Haga lo mismo para su otra vista (nombres propuestos para los puntos de navegación: TO_INPUT_VIEW y FROM_INPUT_VIEW). Reservados todos los derechos. Cree dos vistas Web Dynpro (nombres propuestos: INPUT_VIEW y OUTPUT_VIEW) dentro de su componente e incrústelos en su ventana. 271 . 1. Realice este paso como en el ejercicio anterior. Cree el componente Web Dynpro ZNET310_CTRL_## con una ventana principal MAIN_WINDOW. 2. Defina dos enlaces de navegación entre las dos vistas. que vayan del punto de navegación de salida de una vista al punto de navegación de entrada de la otra vista. Tarea 2: Cree un punto de navegación de salida y otro de entrada para cada vista. a) Realice este paso como en el ejercicio anterior. b) Seleccione la ficha Puntos de navegación de salida e introduzca el nombre del punto de navegación de salida y una descripción en la tabla del extremo superior. a) 2. a) Trate la vista Web Dynpro INPUT_VIEW.

una descripción y el nombre del punto de navegación de salida. TAW12_2 Defina un enlace de navegación desde el punto de navegación de la primera vista (TO_OUTPUT_VIEW) al punto de navegación de entrada de la segunda vista (FROM_INPUT_VIEW). a) Trate la vista y seleccione la ficha Layout. 1.Capítulo 8: Controladores Web Dynpro 4. 10-07-2009 . c) Introduzca el nombre del pulsador y seleccione el tipo de elemento BUTTON. seleccione la ficha Ventana y despliegue todos los nodos de la estructura de la ventana. Cree un elemento de UI simple de tipo BUTTON (nombre propuesto: BUTTON_GO) en la primera vista y actualice el texto que se deberá visualizar sobre el pulsador. 2. Confirme los datos del cuadro de diálogo. introduzca el nombre de la acción. b) En el cuadro de diálogo. b) Abra el menú contextual de ROOTUIELEMENTCONTAINER y seleccione Insertar elemento. d) Vaya a la propiedad Texto y actualice el texto que se debe visualizar en la columna Valor. a) Para tratar la ventana Web Dynpro. a) Realice este paso como antes. Seleccione Crear la columna Vinculación. 5. a) Vaya a la propiedad OnAction del pulsador. Tarea 3: Cree un pulsador en cada una de las dos vistas y asegúrese de que el punto de navegación de salida de la vista respectiva se active cuando el usuario seleccione el pulsador. Cree una acción para el pulsador (nombre propuesto: GO) y relaciónelo con el punto de navegación de salida de la vista (TO_OUTPUT_VIEW). Defina un enlace de navegación desde el punto de navegación de salida de la segunda vista (TO_INPUT_VIEW) al punto de navegación de entrada de la primera vista (FROM_OUTPUT_VIEW). b) Arrastre el punto de navegación de salida de la primera vista y suéltelo sobre el punto de navegación de entrada de la segunda vista. Reservados todos los derechos. en Continúa en la página siguiente 272 © 2009 SAP AG.

¿Qué nuevas partes se han creado en el controlador de vistas al finalizar el paso anterior (consulte las diferentes fichas del editor de vistas)? Respuesta: Acción “GO” Método de programa de control de eventos “ONACTIONGO” (con codificación para activar el punto de navegación de salida) 4. Cree una aplicación Web Dynpro para su componente. a) 5. a) 10-07-2009 Realice este paso como antes. Realice este paso como en el ejercicio anterior. © 2009 SAP AG. Reservados todos los derechos.TAW12_2 Lección: Controladores Web Dynpro 3. actívela y realice un test. 273 . Cree un pulsador en la segunda vista (nombre propuesto: BUTTON_BACK) con texto y acción (nombre propuesto: BACK) y enlácelo al punto de navegación de salida de esa vista.

274 © 2009 SAP AG. 10-07-2009 . • Enumerar las diferencias entre el controlador de componentes. los controladores de vistas y los controladores de ventanas. Reservados todos los derechos. los controladores personalizados. • Definir la función de cada entidad de controlador.Capítulo 8: Controladores Web Dynpro TAW12_2 Resumen de la lección Ahora podrá: • Asignar nombre al contenido de un controlador Web Dynpro.

275 . los controladores de vistas y los controladores de ventanas. 10-07-2009 © 2009 SAP AG. • Definir la función de cada entidad de controlador.TAW12_2 Resumen del capítulo Resumen del capítulo Ahora podrá: • Asignar nombre al contenido de un controlador Web Dynpro. • Enumerar las diferencias entre el controlador de componentes. Reservados todos los derechos. los controladores personalizados.

Reservados todos los derechos. 10-07-2009 .Resumen del capítulo 276 TAW12_2 © 2009 SAP AG.

La comprensión de los elementos de la estructura contextual y sus propiedades es una condición previa para trabajar con el contexto. You could use the following relationship. the singleton property can be declared using the memory type of dependent internal tables in a classic ABAP environment. The dependent table could be the content of a cell in each table line (singleton=false <-> nested internal tables) or the dependent table could be an independent element that contains the dependent data of just one line of the parent table (singleton=true <-> independent internal tables). Los datos se almacenan en él en estructura jerárquica. Definir la asignación entre contextos de distintos controladores ubicados en el mismo componente Web Dynpro. 277 . In this context. En esta unidad se explicará cómo definir la estructura del componente de forma estática.Capítulo 9 El contexto en la fase de diseño 251 It is a good idea to relate the node properties such as cardinality and singleton to elements with which students are familiar. Reservados todos los derechos. Resumen del capítulo El contexto es el almacenamiento de datos de un componente Web Dynpro. for example: Node <-> internal table Element <-> column of internal table Then the cardinality can be related to the restrictions on the number of lines allowed in the internal table. Explicar cómo la influencia singleton y la cardinalidad de las propiedades de nodo influyen en la asignación de memoria en tiempo de ejecución. © 2009 SAP AG. que se puede definir estáticamente o en tiempo de ejecución. Objetivos del capítulo Al finalizar este capítulo podrá: • • • 10-07-2009 Definir nodos y atributos en el contexto de un controlador.

................................... 10-07-2009 ..........Capítulo 9: El contexto en la fase de diseño TAW12_2 Contenido del capítulo Lección: El contexto en la fase de diseño ..... Reservados todos los derechos..279 Ejercicio 15: El contexto en la fase de diseño ..295 278 © 2009 SAP AG..........

desea obtener los datos de aplicación desde un sistema back end. Reservados todos los derechos. some topics can be skipped (for example. estas propiedades regulan la asignación de la memoria. por lo que desea aprender a definir este almacenamiento de datos jerárquico. necesita definir variables que puedan vincularse a elementos de UI y que puedan intercambiarse fácilmente entre varios controladores. el desarrollador puede definir estáticamente la estructura contextual de cualquier controlador. no simples datos estáticos. Definir la asignación entre contextos de distintos controladores ubicados en el mismo componente Web Dynpro. Ejemplo empresarial Ha creado su primer componente Web Dynpro con vistas incrustadas mediante ventanas. You should create a context node in the component controller (with some attributes). En tiempo de ejecución. Sin embargo. Los elementos de contexto deben añadirse a la jerarquía de la estructura y las propiedades deben configurarse para cada elemento de contexto. Por lo tanto. context mapping). copy this node to both views. el tipo del contenido y la dimensión de los arrays de datos que se deberán almacenar. Ha creado una aplicación Web Dynpro para acceder a su componente Web Dynpro desde el browser.TAW12_2 Lección: 252 Lección: El contexto en la fase de diseño El contexto en la fase de diseño Duración de la lección: 70 Minutos Resumen de la lección En la fase de diseño. Estas variables deben definirse en el contexto de controlador. Por consiguiente. Objetivos de la lección Al finalizar esta lección podrá: • • • Definir nodos y atributos en el contexto de un controlador. Depending on how much has been shown in the chapter introducing Web Dynpro. En esta lección se presenta una introducción básica al contexto. In this lesson you should continue to develop your WD component. es esencial entender las definiciones estáticas y las propiedades del tiempo de ejecución relacionadas con el contexto. Explicar cómo la influencia singleton y la cardinalidad de las propiedades de nodo influyen en la asignación de memoria en tiempo de ejecución. 279 . and map the context nodes of both views to the component controller context node. You should create container forms that allow data to be entered in one view and displayed in another view. por ejemplo. 10-07-2009 © 2009 SAP AG.

en tiempo de ejecución se puede modificar no sólo el contenido del contexto. Gráfico 154: Contexto: el núcleo de un controlador La estructura (es decir. Reservados todos los derechos. No obstante. Los datos incluidos en el contexto existen únicamente durante el período de vida del controlador. los metadatos) de un contexto se definen normalmente en la fase de diseño. 280 © 2009 SAP AG. Una vez cancelada la instancia de controlador. conocida como contexto. 10-07-2009 .Capítulo 9: El contexto en la fase de diseño TAW12_2 Definición de la estructura contextual Cada controlador Web Dynpro tiene exactamente una estructura de almacenamiento de datos jerárquica. sino también la propia estructura. todos los datos incluidos en su contexto se pierden.

281 . Mediante esta técnica. Éste es el mecanismo básico del uso compartido de datos entre controladores de un único componente. dos o más controladores pueden acceder a los mismos datos de tiempo de ejecución.TAW12_2 Lección: El contexto en la fase de diseño Gráfico 155: Modificación del contexto A menos que se declare de otro modo. todos los datos de tiempo de ejecución del contexto de un controlador son privados para ese componente. La información que contiene el contexto de un controlador personalizado puede hacerse fácilmente accesible para el contexto de otro controlador (personalizado o de vistas) mediante una técnica conocida como asignación de contextos. 10-07-2009 © 2009 SAP AG. Un controlador de vistas no puede compartir sus datos de contexto. Reservados todos los derechos.

10-07-2009 . 282 © 2009 SAP AG. El nodo debe tener atributos u otros nodos como subordinados. Un nodo de contexto es la clase de abstracción principal utilizada para el almacenamiento de datos de tiempo de ejecución en el framework de Web Dynpro. El nodo raíz de contexto no puede eliminarse ni modificarse de ningún modo. Reservados todos los derechos. show how to copy a node from another controller (choose Create Using the Wizard -> Copy Nodes of Different Context). Show how to define a node without attributes and add the attributes one by one. Todos los contextos de controlador se construyen a partir de una disposición jerárquica de entidades conocidas como nodos y atributos. Finally.Capítulo 9: El contexto en la fase de diseño TAW12_2 Gráfico 156: Creación de nuevos elementos de contexto Demo step 1: Create a context node with attributes in the component controller. Los nodos de contexto se organizan jerárquicamente. Todas las entidades subordinadas de un nodo se agregan a una unidad conocida como elemento. El nodo raíz se crea automáticamente cuando el controlador se inicializa y tiene siempre propiedades fijas. Un contexto tiene siempre un nodo superior conocido como nodo raíz de contexto. Show also how a node related to a DDIC structure and some attributes related to structure fields can be defined in one step. Show how to add or delete some of the attributes after having created the node (use Change from the context menu of the node). Un nodo se puede considerar como una serie de dichos elementos del mismo modo que una tabla es una serie de filas.

Los atributos de contexto u otros nodos de contexto deben definirse como subelementos que almacenen los elementos de cada objeto de datos estructurado. puede crear la estructura de metadatos en la que se almacenarán los datos de tiempo de ejecución. Sin embargo. describen el número máximo y mínimo de elementos que la serie de nodos puede incluir en tiempo de ejecución: 10-07-2009 © 2009 SAP AG. Este nodo superior puede ser un nodo raíz de contexto u otro nodo. Propiedades de elementos de contexto Gráfico 157: Estructura contextual en la fase de diseño Cardinalidad de la serie En la fase de diseño.TAW12_2 Lección: El contexto en la fase de diseño Atención: El nombre de un nodo de contexto debe ser único en toda la estructura del contexto de un controlador. al combinarse. Todos los nodos de contexto tienen una propiedad llamada cardinalidad. 283 . Esta propiedad consta de dos valores que. Un atributo de contexto sólo existe si está asignado a un nodo superior. por lo que podría haber potencialmente varias instancias de cada atributo y nodo subordinado dentro de una serie de nodos. Un atributo de contexto es una entidad del contexto que no puede tener subordinados. deberá definirse un nodo de contexto para almacenar la serie en sí. Reservados todos los derechos. como la visualización de directorios y archivos en Windows Explorer. El diagrama anterior parece mostrar que la estructura contextual es un árbol plano en dos dimensiones. todos los nodos de contexto son series. Si debe almacenarse una serie de objetos de datos estructurados en un contexto de controlador en tiempo de ejecución.

input fields bound to these attributes are set as read-only by the WD runtime..n: se permite cero o un elemento se permite cero o más elementos se permite exactamente un elemento se permite uno o más elementos If the cardinality is 0:1 or 0:n and no element is created and explicitly added to the collection.<algo>).n: 1..Capítulo 9: El contexto en la fase de diseño TAW12_2 Cardinalidad mínima: 0 ó 1 Cardinalidad máxima: 1 ó n Existen. Estos nodos subordinados del nodo raíz de contexto se denominan por lo tanto nodos independientes.1: 1.1)..1: 0. Todas las demás 284 © 2009 SAP AG... 10-07-2009 . Este elemento es conocido como el elemento por defecto y no puede eliminarse. por lo tanto. incluso cuando el número máximo de elementos de la colección está limitado a uno. Gráfico 158: Estructura contextual en tiempo de ejecución: propiedad de cardinalidad (1) El nodo raíz de contexto contiene siempre exactamente un elemento (tenga en cuenta que la cardinalidad es 1..<Max>): • • • • 0. Esto también implica que las series de nodos que sean subordinadas directas del nodo raíz de contexto existirán en tiempo de ejecución como series vacías (cardinalidad = 0.. cuatro valores de cardinalidad posibles (especificados como <Min>.. Reservados todos los derechos. Todos los nodos contienen una serie de elementos.<algo>) o tendrán un elemento por defecto (cardinalidad = 1.

no existe una equivalencia para la propiedad cardinalidad. obtendrá un error de tiempo de ejecución del framework de Web Dynpro. Reservados todos los derechos. al igual que se pueden añadir varios elementos a una serie que se origine a partir de un nodo de contexto en tiempo de ejecución.. estos nodos se llaman nodos dependientes. un nodo de contexto adquiere profundidad. la existencia de estas series de nodos en tiempo de ejecución no está garantizada.TAW12_2 Lección: El contexto en la fase de diseño series de nodos existirán únicamente si sus series superiores contienen al menos un elemento. En la fase de diseño. 10-07-2009 © 2009 SAP AG. Dichas acciones incluyen: • • Intentar eliminar el elemento por defecto de un nodo con cardinalidad 1. los metadatos de la tabla interna incluye la estructura dada por el tipo de línea. Las tablas internas tienen siempre cero líneas tras la declaración del objeto y pueden incluir un número ilimitado de líneas en tiempo de ejecución.. 285 . Si intenta realizar cualquier acción en una serie de nodos que pueda violar su cardinalidad.1.<algo>. Esto puede compararse a un tabla interna en ABAP en la fase de diseño y en tiempo de ejecución. La dimensión de la tabla interna (el número de líneas que el objeto de datos incluye en tiempo de ejecución) no forma parte de la definición. Gráfico 159: Estructura contextual en tiempo de ejecución: propiedad de cardinalidad (2) Ahora puede ver que la estructura del contexto en tiempo de ejecución no es la jerarquía plana en dos dimensiones que se observa en la fase de diseño. No obstante. En su lugar. Por consiguiente. Por eso. Intentar añadir un segundo elemento a un nodo con cardinalidad <algo>. se pueden añadir varias líneas al objeto de datos de la tabla interna. como no hay restricciones sobre el número mínimo y máximo de líneas que una tabla interna puede incluir. En tiempo de ejecución.

10-07-2009 . sólo se puede marcar un elemento de la serie de nodos.. La selección de lead de un nodo de contexto señala a un único elemento de nodo seleccionado (valor de la selección de lead = número del elemento de nodo seleccionado) o bien. . como por ejemplo los campos de entrada.). se pueden vincular a los atributos de este elemento. En este caso. Initialization Lead Selection. mediante la selección de una línea en el elemento de visualización de la tabla vinculado al nodo). se pueden utilizar métodos especiales para acceder a la selección de lead de un nodo. Show that these properties can only be manipulated for the mapping origin. así como a su posición. La selección de lead también puede establecerse mediante el código fuente de programa o con las acciones de usuario relacionadas con los elementos de UI (p. Si se establece la selección de lead. si no se ha seleccionado ningún elemento. © 2009 SAP AG.. tiene el valor de la constante IF_WD_CONTEXT_NODE=>NO_SELECTION. Your component: Open one of the views. las siguientes afirmaciones son verdaderas: • • 286 En el código del controlador. Reservados todos los derechos. Los elementos de UI. Cuando se realiza la selección de lead.Capítulo 9: El contexto en la fase de diseño TAW12_2 La selección de lead Se puede acceder a la serie de elementos de un nodo mediante un valor de índice basado en 1.. El framework de Web Dynpro puede establecer automáticamente la selección de lead si la propiedad de nodo de contexto Inicializar selección de lead está establecida en verdadero. el primer elemento de una serie se marca automáticamente como el elemento en cuestión cuando se realiza la selección de lead. ej. and not for the mapped nodes. navigate to the context and show the property of the previously created context node (cardinality.

Tenga en cuenta que las flechas que señalan a cada una de las series de nodos BOOKINGS se crean en los elementos del nodo superior. habrá una instancia diferente del nodo subordinado BOOKINGS para cada elemento de la serie de nodos superior (en este caso FLIGHTS). 10-07-2009 © 2009 SAP AG. Lo más importante que se debe entender con esto es que cada instancia del nodo BOOKINGS está relacionada con el elemento respectivo de la serie de nodos superior. 287 . El nodo BOOKINGS es un nodo separado que tiene su propia serie de elementos. Por consiguiente. Si la propiedad singleton del nodo BOOKINGS está establecida en falso (el nodo BOOKINGS será un no singleton en tiempo de ejecución).TAW12_2 Lección: El contexto en la fase de diseño La propiedad Singleton Gráfico 160: Estructura contextual en tiempo de ejecución: propiedad singleton (1) Observe que el nodo de contexto FLIGHTS tiene un nodo subordinado llamado BOOKINGS. Reservados todos los derechos. si hay n elementos en el nodo superior. La propiedad booleana Singleton es crucial para la relación entre un nodo dependiente y su nodo superior. habrá n instancias diferentes de un nodo subordinado no singleton.

No obstante. podría haber muchos elementos diferentes en la serie de nodos FLIGHTS. por lo que la serie BOOKINGS será un singleton en tiempo de ejecución.Capítulo 9: El contexto en la fase de diseño TAW12_2 Gráfico 161: Estructura contextual en tiempo de ejecución: propiedad singleton (2) Si el nodo BOOKINGS tiene ahora su propiedad Singleton establecida en verdadero (que es el valor por defecto). este contenga los datos correctos para el elemento seleccionado en el nodo superior. Función de suministro En el ejemplo anterior. no importa cuántos elementos haya en la serie de nodos superior (FLIGHTS. Siempre habrá únicamente una instancia del nodo subordinado BOOKINGS. 288 © 2009 SAP AG. 10-07-2009 . como sólo hay una instancia del nodo subordinado singleton BOOKINGS. necesitamos asegurarnos de que cuando se acceda a este nodo subordinado. Reservados todos los derechos. en este caso).

TAW12_2 Lección: El contexto en la fase de diseño Gráfico 162: Reasignación de datos a un nodo singleton dependiente: Función de suministro Las funciones de suministro son un mecanismo para recargar nodos subordinados. El código fuente ha anulado la validez de esta serie de nodos. Reservados todos los derechos. Los valores de los elementos del nodo subordinado de tipo Singleton dependen del elemento del nodo superior al que está asignada actualmente la selección de lead. La selección de lead de la serie de nodos superiores se ha modificado. La función de suministro es especialmente útil cuando se combina con nodos singleton. El entorno de tiempo de ejecución llama automáticamente esta función de suministro cuando se accede a los datos de un nodo de contexto no válido. 10-07-2009 © 2009 SAP AG. la función de suministro podrá acceder al nuevo elemento de selección de lead y volver a calcular los valores de los elementos del nodo subordinado en consecuencia. 289 . La anulación de la validez de un nodo de contexto se produce bajo las condiciones siguientes: • • • La serie de nodos es inicial. Se puede asignar una función de suministro a cada nodo de contexto de un controlador. Si el usuario modifica la selección de lead.

la información se presenta frecuentemente en forma de lista de registros de cabecera de alguna clasificación (cabeceras de pedidos de cliente. Una referencia al nodo con el que está relacionada la función de suministro le permite almacenar los datos dependientes en la serie de nodos subordinados. Se trataría de una arquitectura de aplicación muy ineficaz tanto en términos de requisitos de procesamiento como de uso de la memoria. 10-07-2009 . se crea un método de instancia con una firma dada: • • Una referencia al elemento en la selección de lead del nodo superior permite acceder a los atributos de este elemento. Gráfico 163: Estructura contextual: Nodos singleton Cuando se utiliza una transacción empresarial. Edit the node’s properties. Enter any name in the input field for the property Supply Function. a continuación. You have already created a node with some attributes. Reservados todos los derechos. Explain that a related method has been generated. Open the Methods tab.Capítulo 9: El contexto en la fase de diseño TAW12_2 El nombre de una función de suministro se puede introducir al definir o modificar un nodo de contexto desde su menú contextual. que leer todas las partidas de todos los pedidos de cliente por si fueran relevantes para el usuario. 290 © 2009 SAP AG. mira sus partidas. Select Enter. Como resultado. Now add a subnode to this node. Tiene mucho más sentido leer la información de partida únicamente cuando es necesario. Desde esta lista. el usuario selecciona normalmente una cabecera de pedidos y. por ejemplo). Your component: Edit the component controller context.

Reservados todos los derechos. Por consiguiente. Esto significa que los datos sólo se crean cuando realmente se necesitan. no es necesario conservar varias instancias de datos que el usuario no ha solicitado. Asignación de contextos Gráfico 164: Asignación de contextos 10-07-2009 © 2009 SAP AG. hace que el no subordinado no se procese hasta que el programa acceda a sus datos. Cuando se aplica este principio a la arquitectura del contexto. La instanciación de datos no activa significa también que no se crean automáticamente series dependientes para todos los elementos del nodo superior. La creación de una serie del nodo dependiente se pospone hasta que el elemento relacionado de la serie superior obtiene la selección de lead.TAW12_2 Lección: El contexto en la fase de diseño Web Dynpro sigue el principio de instanciación de datos no activa. 291 .

tratamiento de errores. A continuación. Consejo: En los programas diseñados de acuerdo con el principio MVC. drag and drop the node from the component. el controlador personalizado los suministra a un controlador de vistas para su visualización. only input fields can be created this way.Capítulo 9: El contexto en la fase de diseño TAW12_2 La asignación de contextos permite a un controlador (normalmente un controlador de vistas) acceder a los datos procesados anteriormente por otro controlador. podría producirse una situación en la que un controlador personalizado fuera dependiente de las funciones de un controlador de vistas. Using the Create Container Form function from the context menu of the ROOTUIELEMENTCONTAINER will not create a group that embeds the form fields. 292 © 2009 SAP AG. However. Interactuar con lógica back end para generar los datos solicitados es tarea del controlador personalizado. Nota: Un nodo asignado carece de serie de elementos propia. se puede hacer referencia a un nodo de un contexto de origen de la siguiente manera: Your component: Now edit your views. En su lugar. the developer can decide which context attribute will be bound to what kind of UI element.). En su lugar. demonstrate how input fields can be created automatically. This also implements context mapping. Use the WD Code Wizard to create a group that contains the form elements. por consiguiente. etc. You can also copy the context node first and implement mapping afterwards by dragging and dropping the view node to the node that serves as the mapping origin. no es necesario que estos datos se copien o muevan. los contextos de todos los controladores utilizados se visualizarán en la parte derecha. Si un controlador de vistas pudiese actuar como fuente de datos (origen) para una relación de asignación. Una vez generados los datos. el controlador de destino debe declarar el controlador de origen como controlador utilizado en sus propiedades. Un controlador de vistas no puede actuar como fuente de datos para una relación de asignación porque esto violaría los principios del diseño de programa MVC. el controlador de vistas sólo se debe preocupar de la visualización de datos generados con anterioridad y de la gestión de la interacción resultante del usuario (validación. Para establecer una asignación de contextos entre dos controladores. hace referencia a la serie de elementos del nodo de origen de asignación. un controlador de vistas debe escribirse de modo que no tome parte en la generación de los datos que visualiza. Como una relación de asignación permite que se realice una referencia directa a los datos de otro controlador. However. 10-07-2009 . To create the context structures. At the end. Esto no sería un buen diseño MVC y. Si se selecciona la ficha Contexto en modo de edición del controlador de destino. Reservados todos los derechos. no está permitido.

Reservados todos los derechos. eliminan o modifican elementos). el nodo de destino se arrastra y se suelta desde el contexto del controlador de destino hasta el origen de asignación del contexto del controlador de origen. para los nodos dependientes esto sólo es posible si los nodos independientes relacionados ya se han asignado. Consejo: Después de ejecutarse la asignación entre los dos nodos. Gráfico 165: Asignación de contextos: asignación interna 10-07-2009 © 2009 SAP AG. Si la estructura de nodo del origen de asignación se modifica (si se añaden. la estructura del nodo de origen se asigna arrastrándolo y soltándolo desde el contexto del controlador de origen hasta el nodo raíz del contexto del controlador de destino. No obstante. la asignación se puede actualizar (sincronizar) mediante el menú contextual del nodo asignado. Atención: Los nodos sólo se pueden asignar si el nodo asignado no contiene más atributos que el origen de asignación. tanto los atributos como los nodos subordinados. 293 .TAW12_2 Lección: El contexto en la fase de diseño You should also show how changes in the context structure of the mapping origin can be taken into account by mapping (using the functions Update Mapping and Delete Mapping). se asignan todos sus elementos. Si ya se ha definido la estructura de un nodo en el contexto del controlador de destino. • • Si todavía no se ha definido un nodo independiente para asignación en el contexto del controlador de destino.

Hablaremos de la asignación externa más adelante. Exercise “The Context at Design Time” 294 © 2009 SAP AG. Esto se conoce como asignación externa. el nodo de origen de asignación está fuera de los límites del componente actual. un caso especial en el que una relación de asignación sólo puede establecerse parcialmente al escribir el componente actual. sin embargo. Como su propio nombre implica. Existe.Capítulo 9: El contexto en la fase de diseño TAW12_2 Asignación interna es el nombre que se da a una relación de asignación en la que tanto el nodo asignado como el nodo de origen de asignación están dentro de los límites de un componente. Reservados todos los derechos. 10-07-2009 . Esto significa que la relación de asignación se puede establecer completamente durante el desarrollo del componente actual.

ZNET310_COND_##. cree un nodo de contexto (nombre propuesto: FLIGHTINFO) basado en el tipo de diccionario SFLIGHT y con cardinalidad 1. Modelo: NET310_CTRL_S Solución: NET310_COND_S Tarea 1: Copie la solución del ejercicio anterior o use el componente modelo. Reservados todos los derechos. 1. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. Cree el mismo nodo de conexión en cada una de las dos vistas y asigne los contextos del controlador de vistas al contexto del controlador de componentes. Añada dos atributos a partir de los componentes de estructura CARRID y CONNID. Tarea 2: En el contexto del controlador de componentes. Copie la solución del ejercicio anterior (ZNET310_CTRL_##) o del componente Web Dynpro NET310_CTRL_S en el nuevo componente. 295 . 1..1. En el contexto del controlador de componentes. Los datos que el usuario introduce en una vista (un ID de compañía aérea y un ID de conexión) deberán estar disponibles para su visualización en la siguiente vista.TAW12_2 265 Lección: El contexto en la fase de diseño Ejercicio 15: El contexto en la fase de diseño Duración del ejercicio: 30 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Crear nodos en contextos de componentes y vistas • Asignar nodos de contexto de vistas a nodos de contexto de componentes • Crear campos de entrada/salida en vistas Web Dynpro • Asociar elementos de UI a nodos de contexto de vistas Ejemplo empresarial Desea desarrollar una aplicación Web Dynpro con campos de entrada/salida en las vistas.. cree un nodo de contexto que contenga atributos para un ID de compañía aérea y un ID de conexión.

Cree una aplicación Web Dynpro para su componente. En el layout de la vista INPUT_VIEW. Utilice el asistente de codificación Web Dynpro para crear el formulario.Capítulo 9: El contexto en la fase de diseño 2. Tarea 3: Para ambas vistas. actívela y realice un test. 2. Reservados todos los derechos. 3. cree campos de entrada que correspondan a los atributos de nodo de contexto y vincúlelos a dichos atributos. Repita el paso anterior para la vista OUTPUT_VIEW. 296 1. © 2009 SAP AG. TAW12_2 Cree el mismo nodo en el contexto de cada controlador de vistas y asigne el nodo de contextos de los controladores de vistas al nodo de contexto FLIGHTINFO del controlador de componentes. cree un formulario con referencias a los atributos de contexto CARRID y CONNID. 10-07-2009 .

En el contexto del controlador de componentes. d) Seleccione Añadir atributos desde estructura . c) Introduzca un nombre para el nuevo componente Web Dynpro. a) Una posible solución: En Object Navigator. Cree el mismo nodo de conexión en cada una de las dos vistas y asigne los contextos del controlador de vistas al contexto del controlador de componentes. ZNET310_COND_##.1.TAW12_2 Lección: El contexto en la fase de diseño Solución 15: El contexto en la fase de diseño Tarea 1: Copie la solución del ejercicio anterior o use el componente modelo.. el nombre del tipo de diccionario (estructura) y la cardinalidad. 1. Copie la solución del ejercicio anterior (ZNET310_CTRL_##) o del componente Web Dynpro NET310_CTRL_S en el nuevo componente. marque los componentes de estructura CARRID y CONNID. Añada dos atributos a partir de los componentes de estructura CARRID y CONNID. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. 1. b) Abra el menú contextual del nodo de contexto raíz y seleccione Crear → Nodo. cree un nodo de contexto (nombre propuesto: FLIGHTINFO) basado en el tipo de diccionario SFLIGHT y con cardinalidad 1. a) Trate el controlador de componentes y seleccione la etiqueta Contexto. c) Introduzca el nombre del nodo. seleccione Tratar objeto y. b) Introduzca el nombre del componente Web Dynpro que se va a copiar y seleccione Copiar . cree un nodo de contexto que contenga atributos para un ID de compañía aérea y un ID de conexión. Tarea 2: En el contexto del controlador de componentes. 297 . a continuación. seleccione la etiqueta Objetos Web. Reservados todos los derechos. y seleccione ..

b) Inicie el Asistente de codificación Web Dynpro haciendo clic en el pulsador de la barra de herramientas de aplicaciones del explorador Web Dynpro. 10-07-2009 . En el layout de la vista INPUT_VIEW. TAW12_2 Cree el mismo nodo en el contexto de cada controlador de vistas y asigne el nodo de contextos de los controladores de vistas al nodo de contexto FLIGHTINFO del controlador de componentes. Consejo: Puede reorganizar los elementos de UI de la siguiente manera: • • • Si mueve el pulsador al grupo de elementos de UI mediante la función de arrastrar y soltar. el pulsador se moverá hacia una nueva fila del grupo. Reservados todos los derechos. c) y haga doble clic en el nodo de contexto Seleccione Contexto (FLIGHTINFO) del cuadro de diálogo.Capítulo 9: El contexto en la fase de diseño 2. Si fija la propiedad de pulsador Datos de layout en MatrixHeadData. Continúa en la página siguiente 298 © 2009 SAP AG. este pulsador aparecerá como último elemento del grupo. cree un formulario con referencias a los atributos de contexto CARRID y CONNID. Confirme que desea copiarlo y asigne el nodo. a) Trate la vista Web Dynpro y seleccione la ficha Layout. Si actualiza la propiedad Texto de caption de los grupos. b) Arrastre el nodo de contexto FLIGHTINFO desde el contexto de controlador de componentes (lado derecho) y suéltelo en el nodo raíz del contexto de controlador de vistas (lado izquierdo). se añadirá una cabecera al grupo. cree campos de entrada que correspondan a los atributos de nodo de contexto y vincúlelos a dichos atributos. Seleccione el modelo para crear formularios. Tarea 3: Para ambas vistas. a) Trate una de las vistas Web Dynpro y seleccione la etiqueta Contexto. c) Repita este paso para la segunda vista. Utilice el asistente de codificación Web Dynpro para crear el formulario. d) Confirme las entradas seleccionando . 1.

Cree una aplicación Web Dynpro para su componente. actívela y realice un test. © 2009 SAP AG. cambie la casilla de selección readOnly para cada campo de entrada. b) Si desea modificar la propiedad sólo lectura de los campos de entrada de esta vista.TAW12_2 Lección: El contexto en la fase de diseño 2. Repita el paso anterior para la vista OUTPUT_VIEW. a) 10-07-2009 Realice este paso como en los ejercicios anteriores. Reservados todos los derechos. a) Realice este paso como antes. 3. 299 .

Capítulo 9: El contexto en la fase de diseño TAW12_2 Resumen de la lección Ahora podrá: • Definir nodos y atributos en el contexto de un controlador. 10-07-2009 . Reservados todos los derechos. • Explicar cómo la influencia singleton y la cardinalidad de las propiedades de nodo influyen en la asignación de memoria en tiempo de ejecución. 300 © 2009 SAP AG. • Definir la asignación entre contextos de distintos controladores ubicados en el mismo componente Web Dynpro.

TAW12_2 Resumen del capítulo Resumen del capítulo Ahora podrá: • Definir nodos y atributos en el contexto de un controlador. • Definir la asignación entre contextos de distintos controladores ubicados en el mismo componente Web Dynpro. • Explicar cómo la influencia singleton y la cardinalidad de las propiedades de nodo influyen en la asignación de memoria en tiempo de ejecución. 301 . 10-07-2009 © 2009 SAP AG. Reservados todos los derechos.

10-07-2009 .Resumen del capítulo 302 TAW12_2 © 2009 SAP AG. Reservados todos los derechos.

.........304 Ejercicio 16: Interfase de usuario: Visualización de objetos de Repository MIME ............. Detailed documentation is available is available for each UI element in the context menu of the UI element hierarchy.. changing UI element properties at runtime and the complex Table element .... En tiempo de ejecución......... en función del cliente utilizado...... Objetivos del capítulo Al finalizar este capítulo podrá: • • • Definir el layout de las vistas mediante la disposición de los elementos de UI y el establecimiento de sus propiedades. Vincular las propiedades de elemento de UI a atributos de contexto. Reservados todos los derechos..... se utiliza una herramienta WYSIWYG para diseñar un layout de visualización.. 303 . this chapter looks at the concepts of data binding.......... This would be very boring as it would be difficult to remember all these details....333 10-07-2009 © 2009 SAP AG...Capítulo 10 Definición de la interfase de usuario (UI) 273 The focus of this chapter is NOT to discuss all UI elements and their properties............. En esta unidad se explican todos los aspectos de la definición de interfases de usuario.. Resumen del capítulo Uno de los puntos fuertes de Web Dynpro es que permite definir una interfase de usuario fácilmente.. Instead...331 Ejercicio 17: Interfase de usuario: visualización de tablas . Al igual que para diseñar una pantalla tradicional.............. el layout se genera a partir de los metadatos.. Contenido del capítulo Lección: Definición de la interfase de usuario (UI) .... Usar el elemento de UI de tabla como ejemplo de utilización de elementos de UI compuestos...

desea disponer los elementos de la pantalla por grupos o bandejas). information on integrating interactive forms (of Adobe). es decir. En esta lección se explica cómo disponer de los diferentes elementos de UI para diseñar el layout de una vista. Los datos en masa deberán visualizarse en tablas. Además. algunas propiedades 304 © 2009 SAP AG. También aprenderemos a definir la vinculación de datos entre las propiedades de los elementos de UI y los atributos de contexto. Las propiedades del elemento de UI pueden entonces controlarse mediante el código fuente del controlador actuando sobre los atributos. Some of these elements . los elementos de UI anidados (por ejemplo. Objetivos de la lección Al finalizar esta lección podrá: • • • Definir el layout de las vistas mediante la disposición de los elementos de UI y el establecimiento de sus propiedades. will be explained in the special topics chapter at the end of this handbook. Se habla de los elementos de UI estándar y los elementos complejos. A standard SAP Web Dynpro application (WDR_TEST_UI_ELEMENTS) can also be used to check out the functions of elements not covered in this training material. garantizando la mejor separación entre la UI y la lógica del programa. Reservados todos los derechos.for example. lo que le permite marcar una o más filas y filtrar o clasificar los datos. Some students may also ask for trees. 10-07-2009 . Vincular las propiedades de elemento de UI a atributos de contexto. network charts or office integration UI elements. Demos on business graphics are also contained in the NET310 package. Ejemplo empresarial Desea crear una aplicación Web Dynpro que tenga una interfaz de usuario optimizada (por ejemplo. Only the simple elements and the container elements are discussed here. TABLE o TREE).Capítulo 10: Definición de la interfase de usuario (UI) Lección: 274 TAW12_2 Definición de la interfase de usuario (UI) Duración de la lección: 160 Minutos Resumen de la lección La definición de la interfase de usuario conlleva la definición de los elementos de UI y su disposición en el layout de visualización así como la vinculación de las propiedades del elemento de UI a los atributos de contexto. Usar el elemento de UI de tabla como ejemplo de utilización de elementos de UI compuestos. Gantt charts.

No obstante. Estos elementos se utilizan para estructurar la UI sin ser visibles. desea ampliar sus conocimientos sobre los elementos de UI. Este será probablemente un browser estándar. 305 . pero también podría ser un Smart Client.TAW12_2 Lección: Definición de la interfase de usuario (UI) de los elementos de UI (como la visibilidad) deberán controlarse desde el código fuente de la aplicación. 10-07-2009 © 2009 SAP AG. eso no significa que todos los elementos de UI sean visibles en la pantalla. Por ejemplo. al ocultar el elemento de UI Label ubicado a la izquierda de un elemento de UI InputField no significa automáticamente que el elemento de UI InputField se mueva a la izquierda y aparezca en la posición en la que se visualizaba anteriormente el elemento de UI Label. Reservados todos los derechos. Existen algunos elementos de UI que no son visibles en la pantalla. Esto implica que cualquier elemento de UI es sólo una descripción abstracta del código fuente que se debe renderizar en tiempo de ejecución. todos los elementos de UI se pueden establecer como invisibles en tiempo de ejecución sin que por ello se libere el espacio que ocuparían como elementos de UI visibles. Definición de un layout de visualización Gráfico 166: Elementos de UI Un elemento de UI es cualquier entidad gráfica que ocupe una posición dentro de un layout de visualización. Además. pero ocupan una posición en la jerarquía de elementos de UI al igual que cualquier otro elemento de UI visible. Por lo tanto. como el TransparentContainer o el ViewUIElementContainer. un Pocket PC™ o una Blackberry™ en futuras versiones. Web Dynpro se ha diseñado para operar con cualquier interfaz de usuario basada en formularios. y no únicamente una representación WML o HTML de este elemento.

La categoría Standard Complex contiene elementos que necesitan tener elementos subordinados para definir un elemento de UI renderizable y válido. Un buen ejemplo es una Table. por ejemplo. Reservados todos los derechos. que necesita tener un elemento TableColumn como subordinado para cada columna que se deba visualizar. o para incrustar documentos de Microsoft Office como documentos de Microsoft Word o Excel (OfficeIntegration) y otros elementos de UI especiales. Los elementos de UI de container estructuran el layout de manera visible (por ejemplo. que se visualizan en el diseñador de vistas si la presentación preliminar de layout es visible: La categoría Standard Simple contiene elementos que se utilizan frecuentemente en aplicaciones Web Dynpro y que también se conocen de otras tecnologías de UI como. 10-07-2009 . Group) o no visible (por ejemplo. TransparentContainer). Button. 306 © 2009 SAP AG. Otras categorías contienen elementos para visualizar diagramas basados en Active-X (Active Component).Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 Gráfico 167: Categorías de elementos de UI Existe una gran cantidad de elementos de interfaz de usuario disponibles para el diseño de la interfaz de usuario de una aplicación Web Dynpro. formularios interactivos de Adobe (Adobe) o gráficos empresariales renderizados por Internet Graphics Server (BusinessGraphics). Label o InputField. Todos los elementos de interfaz de usuario disponibles se dividen en categorías. La categoría Standard Container consta de elementos que pueden tener elementos subordinados.

Todos los elementos subordinados 10-07-2009 © 2009 SAP AG. Esto no se puede modificar. 307 . Todos los elementos de container definen cómo se dispondrán sus subordinados. la codificación es fija. que asigna un gestor de layout al elemento de UI. Reservados todos los derechos. Esto se realiza evaluando la propiedad Layout. Todos los elementos de UI que están subordinados a un elemento de container están ubicados en esta área rectangular. El nodo raíz siempre es de tipo TransparentContainer y siempre se denomina RootUIElementContainer . Elementos de container y gestores de layout Los elementos de container son elementos de UI que pueden tener elementos subordinados. Todos los elementos de UI posteriores añadidos a un layout de visualización están subordinados jerárquicamente a RootUIElementContainer.TAW12_2 Lección: Definición de la interfase de usuario (UI) Gráfico 168: Disposición de elementos de UI Show documentation available for each UI element (right mouse click on any element defined in UI element hierarchy) Todos los layouts de visualización constan de una jerarquía de elementos de UI. Ocupan un área rectangular en el layout de una vista.

10-07-2009 . Los elementos que están en líneas diferentes no están relacionados entre ellos. Resize your browser window. Este salto no puede forzarse en la fase de diseño. start the demo NET310_UI_D1. éstos saltan automáticamente a las siguientes líneas. por ejemplo). Todos los atributos subordinados de este container se visualizan en una fila.Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 de un elemento de UI de container heredan un conjunto de propiedades que están relacionadas con el valor de la sección Layout Data de la propiedad Layout del container. Gráfico 169: Gestores de layout: FlowLayout El gestor de layout por defecto es el gestor de layout FlowLayout. 308 © 2009 SAP AG. tan larga como ancho sea el container. Si el elemento de UI de container es demasiado estrecho como para que se puedan visualizar todos los elementos subordinados en una fila (si la ventana del browser es demasiado estrecha. La propiedad Layout puede tener cuatro valores: • • • • FlowLayout RowLayout MatrixLayout GridLayout To demonstrate the differences between the layout managers. Este tipo de container se puede utilizar para disponer subcontainers. Reservados todos los derechos.

Reservados todos los derechos. 10-07-2009 © 2009 SAP AG. se forzará un salto de línea. 309 . Los elementos de UI ubicados en filas diferentes no están enlazados entre sí y. que puede tener los valores RowData y RowHeadData. no están alineados en columnas. por lo tanto. El ancho de cada celda se puede establecer con el atributo width de cada elemento subordinado. aunque ya se haya alcanzado el margen de la derecha. el elemento subordinado aparecerá en la misma línea que el elemento anterior. todos los subordinados heredarán la propiedad LayoutData.TAW12_2 Lección: Definición de la interfase de usuario (UI) Gráfico 170: Gestores de layout: RowLayout Si el gestor de layout RowLayout se utiliza con el elemento de UI de container. Si se establece esta propiedad en RowHeadData. Si se establece la propiedad en RowData.

el elemento subordinado aparecerá en la misma línea que el elemento anterior. aunque ya se haya alcanzado el margen de la derecha.Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 Gráfico 171: Gestores de layout: MatrixLayout Si el gestor de layout MatrixLayout se utiliza con el elemento de UI de container. se forzará un salto de línea. el número de columnas no se define estáticamente. 10-07-2009 . todos los subordinados heredarán la propiedad LayoutData. Si se establece la propiedad en MatrixData. Con este gestor de layout. El número de elementos en filas distintas no tiene que coincidir necesariamente. Reservados todos los derechos. sino según el número máximo de elementos subordinados en cualquier fila. Si se establece esta propiedad en MatrixHeadData. 310 © 2009 SAP AG. que puede tener los valores MatrixData y MatrixHeadData. Los elementos de UI dispuestos en un MatrixLayout pueden ocupar varias celdas (propiedad colSpan). Los elementos subordinados de este container se disponen en columnas.

Cuando se utilice este gestor de layout. No obstante. Deberá utilizarse este tipo de gestor de layout si todas las filas ocupan el mismo número de columnas y si se insertan o eliminan sólo filas completas.TAW12_2 Lección: Definición de la interfase de usuario (UI) Gráfico 172: Gestores de layout: GridLayout Al igual que el MatrixLayout. Reservados todos los derechos. el elemento subordinado individual no controla si es el primer elemento de una nueva fila. ya que todos los elementos posteriores de la jerarquía se moverán hacia la izquierda tantas celdas como ocupaba el elemento eliminado. De este modo. el gestor de layout GridLayout puede utilizarse si se desea un alineamiento vertical de los elementos. en este caso el número de columnas se define mediante la propiedad colCount del elemento de container. Rearrange the UI elements. Your component: Change the layout manager of the ROOTUIELEMENTCONTAINER in one of the views. 311 . no se deberán eliminar completamente los elementos de UI. 10-07-2009 © 2009 SAP AG. Si se elimina un elemento de la jerarquía. sino que se deberán sustituir por un InvisibleElement con el fin de mantener la disposición de elementos original. Se producirá un salto de línea cuando se ocupen todas las celdas de una fila. se modificará toda la disposición.

Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 Adición de elementos de UI al layout El Editor de vistas es una herramienta específica de Web Dynpro que le permite tratar un layout de visualización. En la siguiente descripción se asume que utiliza la presentación preliminar de layout. El Editor de vistas sólo está disponible cuando se trata un controlador de vistas. Gráfico 173: Utilización del editor de vistas El editor de vistas se puede utilizar con o sin la presentación preliminar de layout. Reservados todos los derechos. No aparece cuando se trata un controlador personalizado. 312 © 2009 SAP AG. 10-07-2009 . porque estos controladores no tienen interfase visual.

También puede mover el elemento arrastrándolo y soltándolo en la nueva posición de la representación jerárquica o en la presentación preliminar de layout. onSort u onAction). mediante JavaScript). puede moverlo hacia arriba o hacia abajo mediante la funcionalidad relacionada desde el menú contextual del elemento. deben asociarse acciones a cada uno de los eventos. onFilter. un elemento TransparentContainer o un elemento Group). puede arrastrarlo y soltarlo desde la barra de herramientas situada en la parte izquierda del Editor de vistas. 313 .TAW12_2 Lección: Definición de la interfase de usuario (UI) Gráfico 174: Editor de vistas Para añadir cualquier elemento de UI. Reservados todos los derechos. los eventos del mandante admitidos se enumerarán en la sección de la propiedad Events. No se puede gestionar eventos adicionales del mandante (por ejemplo. Para modificar la posición de un elemento de UI en la jerarquía de elementos. También es posible añadir un nuevo elemento de UI en la representación jerárquica. Consejo: Los eventos del cliente son eventos relacionados con elementos de UI que el marco Web Dynpro predefine. 10-07-2009 © 2009 SAP AG. Para gestionar estos eventos del cliente. Si el elemento de UI admite eventos. Las propiedades relacionadas con los eventos del mandante empiezan por el prefijo on (por ejemplo. lo cual se puede realizar desde el menú contextual de cualquier elemento de la jerarquía que tenga elementos subordinados (por ejemplo. La ficha Propiedades visualiza todas las propiedades del elemento de UI seleccionado.

Capítulo 10: Definición de la interfase de usuario (UI)

TAW12_2

Vinculación de datos
Una vez que la propiedad del elemento de UI se asocia a un atributo o nodo de
contexto, los datos de contexto se utilizan para suministrar un valor a la propiedad
del elemento de UI. Si el usuario puede actualizar la propiedad del elemento de
UI (como la propiedad de valor de un elemento de UI InputField), el contexto
se actualizará automáticamente con el nuevo valor durante el siguiente trayecto
circular.
Casi todas las propiedades de un elemento de UI se pueden vincular bien a un
nodo de contexto o bien a un atributo de contexto con el tipo de datos correcto.
Nota: Una relación de asociación sólo puede existir entre el contexto y
los elementos de UI del mismo controlador de vistas.
El controlador de vistas Web Dynpro se ha construido de modo que sea
normalmente posible tener el control completo de la apariencia del layout de
pantalla sin tener que acceder nunca directamente a los objetos del elemento de UI.
Cualquier propiedad sobre la que se desee tener un control programático deberá
asociarse al atributo o nodo de contexto correspondiente.

Gráfico 175: Vinculación de datos

Definición de vinculación de datos
Para que un elemento de UI visualice algún dato, su propiedad de valor debe
estar vinculada al menos a un atributo o nodo de contexto adecuado (existen muy
pocos elementos de UI que no tengan una propiedad de valor, HorizontalGutter
por ejemplo).

314

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2

Lección: Definición de la interfase de usuario (UI)

Los siguientes pasos son los mínimos requeridos para poner los datos en la
pantalla:
1.

2.
3.

Crear un nodo o atributo en el contexto del controlador de vistas que
contenga los datos. No es importante saber si se trata de un nodo de contexto
asignado o no.
Crear el elemento de UI en el layout de visualización.
Para todas las propiedades que requieren vinculación de contextos, se
visualizará un pulsador con un icono amarillo y un círculo vacío a la derecha
de la propiedad. Asigne la asociación requerida haciendo clic en este botón.
Se visualizará el contexto del controlador de vistas en un cuadro de diálogo.
Todos los nodos o atributos que tengan el tipo correcto para la vinculación de
la propiedad de elemento de UI se visualizarán en él. Seleccione un nodo
o atributo apropiado.

La ruta de contexto al nodo o atributo se visualizará como valor de la propiedad.
Además, el círculo vacío se sustituirá por un icono de marca de comprobación
verde. El elemento de UI de la presentación preliminar de layout también
visualizará la ruta de contexto del nodo o atributo al que está vinculado.
El establecimiento de una relación de asociación ordena al renderizador de
pantalla Web Dynpro que obtenga el valor de una propiedad de elemento de UI a
partir del atributo o nodo de contexto al que está asociado.
La asociación de contextos no se limita a suministrar simplemente un InputField,
por ejemplo, con un valor. Una propiedad de valor del elemento de UI es sólo una
de las numerosas propiedades que se pueden suministrar con datos mediante una
relación de asociación.
Éste es el mecanismo mediante el cual un controlador de vistas puede ajustar la
apariencia y el comportamiento de su layout de visualización sin tener que acceder
nunca a los propios objetos de elemento de UI.
It is to early to explain how UI element properties can be changed from the
controller source code. However, binding the properties to context attributes can
be shown.
You can use the demo NET310_UI_D2 to show how to change the UI element
properties.
Your component: In this context, you should explain that depending on the
property, the context attribute has to have a certain type. Show how to type a
context attribute accordingly (property visible of a Label and/or an InputField).
Add a context node containing such attributes and bind the corresponding UI
element properties.

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

315

Capítulo 10: Definición de la interfase de usuario (UI)

TAW12_2

Gráfico 176: Colocación de datos en la pantalla (1)

Gráfico 177: Colocación de datos en la pantalla (2)

Como puede ver en la figura anterior, no es necesario tener los elementos de UI en
el mismo orden que los atributos de contexto a los que están asociados.
La asociación de datos es una relación de doble sentido.

316

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2

Lección: Definición de la interfase de usuario (UI)

Una vez que se ha declarado una relación de asociación, los datos de los nodos
y atributos asociados se transportan automáticamente a los elementos de UI
correspondientes. Después de que el usuario haya interactuado con la pantalla e
inicializado un trayecto circular HTTP, los datos nuevos o modificados de los
elementos de UI se transportan de vuelta a los mismos nodos y atributos del
contexto del controlador de vistas. Para cuando el marco Web Dynpro transfiere
el control a su controlador de acciones, el contexto ya tiene la información
actualizada.
Este proceso de transporte de doble sentido es totalmente automático y no requiere
ninguna acción por parte del desarrollador de la aplicación. Todo lo que tiene que
hacer es declarar una relación de asociación.

Control del comportamiento del elemento de UI

Gráfico 178: Definición de las propiedades de elemento de UI de manera
estática

El valor de una propiedad de elemento de UI puede ser de codificación fija
o estar vinculado a un atributo de contexto de un tipo de datos adecuado. Si
un valor de propiedad es de codificación fija en la fase de diseño, sólo podrá
modificarse en tiempo de ejecución mediante el acceso directo al elemento de UI
desde el código fuente del controlador de vistas. Esto sólo se puede llevar a cabo
mediante el método de conexión wddomodifyview( ), ya que es el único método
que proporciona una referencia a la jerarquía de elementos de UI. No obstante, el
acceso directo a la jerarquía de elementos de UI desde el método de un controlador
está considerado un diseño pobre, porque la separación entre la lógica de proceso
y la UI no está garantizada. Esta técnica deberá evitarse.

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

317

Capítulo 10: Definición de la interfase de usuario (UI)

TAW12_2

Gráfico 179: Control de las propiedades de elementos de UI (1)

Para controlar el comportamiento de un elemento de UI desde la perspectiva
de la programación, deberá crear un atributo de contexto con un tipo de datos
que coincida con la propiedad que desea controlar. Esto le permite controlar
el comportamiento del elemento de UI mediante la modificación del valor del
atributo relacionado en cualquier método de cualquier controlador que tenga
acceso a este atributo de contexto. Ya no será necesario que acceda directamente
al objeto de elemento de UI desde el código fuente del controlador.

Gráfico 180: Control de las propiedades de elementos de UI (2)

318

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2

Lección: Definición de la interfase de usuario (UI)

Una vez creado el atributo de contexto, éste debe asociarse a la propiedad de
elemento de UI apropiada. En este caso, la propiedad readOnly de un elemento
InputField se ha asociado a un atributo de valor booleano.
El valor del atributo de contexto puede ahora manipularse mediante cualquier
método de conexión de controlador o mediante sus métodos de instancia o de
control de acciones.
Esta técnica se puede aplicar a la mayoría de las propiedades de elemento de UI.
Podrá encontrar los tipos de datos apropiados utilizando la ficha Tipos del tiempo
de ejecución Web Dynpro en el cuadro de diálogo que se visualiza al escribir
un atributo de contexto.

Textos del Dictionary ABAP
Muchos elementos de UI (TextView, Label, Caption, etc.) visualizan textos en la
UI renderizada. Estos textos se pueden obtener a partir del Dictionary ABAP
de dos maneras:

La propiedad relativa al texto se asocia a un atributo de contexto, que a su
vez se tipifica con un elemento de datos definido en el Dictionary ABAP.
Ejemplo: La propiedad Text de un Button se asocia a un atributo de contexto.
A continuación, el texto del pulsador se origina a partir del elemento de datos
relacionado con el atributo de contexto.

El elemento de UI se relaciona con un segundo elemento de UI, y este
segundo elemento se vincula a un elemento de contexto tipificado con un
elemento de datos. En este caso, la propiedad relativa al texto debe dejarse
en blanco para poder utilizar el texto del diccionario.
Ejemplo: Se relaciona una Label con un InputField y se deja la propiedad
Text de la Label en blanco. El texto de la etiqueta se origina a partir del
elemento de datos relacionado con el InputField.

Your component: Show, how to use DDIC texts. Get the texts related to the text
property of some view elements (for example, the Labels) from the DDIC (data
elements or structure fields).

Página de test para elementos de UI
En cada sistema basado en SAP NetWeaver 2004s se incluye la aplicación Web
Dynpro WDR_TEST_UI_ELEMENTS. Puede utilizarla para verificar las funciones
de cada uno de los elementos de UI.

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

319

Capítulo 10: Definición de la interfase de usuario (UI)

TAW12_2

Gráfico 181: Página de test para elementos de UI

Here you should ask the students, if they know the MIME Repository. If this
is not the case, give a brief introduction. This should comprise the following
issues:
Explain that the path visible in the MIME Repository (for example,
sap/bc/webdynpro/sap/public/NET310/explosion.gif) corresponds to the
URL path for accessing the MIME object. Check it out by using this
path as part of the URL in the browser.
Use existing MIME objects in Web Dynpro (for example, drag and drop
an image from the MIME Repository to an Image UI element in the UI
element hierarchy).
Add a MIME object to your component using the context menu for your
component. After importing the MIME object, switch to the MIME
Repository and localize the object (sap/bc/webdynpro/sap/z....).

Exercise “Displaying MIME Repository Objects”

320

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2

Lección: Definición de la interfase de usuario (UI)

Elementos de UI compuestos
Algunos elementos de UI se visualizan en la pantalla como agregaciones de
elementos de UI más sencillos y básicos. El elemento de UI Table es un buen
ejemplo de ello.

Gráfico 182: Elementos de UI compuestos (1)

Sin los elementos de UI subordinados, un elemento de UI compuesto no es capaz
de visualizar ninguna información. Los elementos de UI compuestos, como
Group y Tray, tienen un elemento de UI subordinado Caption obligatorio, pero
por lo demás, su estructura está totalmente definida por el usuario. Sin embargo,
los elementos de UI compuestos, como Table y Tree, requieren una estructura
subordinada obligatoria más compleja.

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

321

Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 Gráfico 183: Elementos de UI compuestos (2) El elemento de UI Table El elemento de UI Table actúa como elemento superior de diversos elementos de UI TableColumn. Focus on: UI element hierarchy in view layout. Show Demo NET310_UI_D3 here. se pueden utilizar otros elementos de UI como editores de celdas (por ejemplo. en función del valor de la celda y de si hace falta que el valor de la celda sea modificable o no. 10-07-2009 . El editor de celdas es una expresión abstracta de todas las clases de elemento de UI que se pueden utilizar como elementos de celda en una columna determinada. Checkbox o Button). Reservados todos los derechos. Cada uno de estos elementos actúa a su vez como elemento superior de una cabecera (implementado como elemento de UI Caption) y un editor de celdas. InputField. No obstante. 322 © 2009 SAP AG. DropDownByKey. El elemento de UI por defecto para el editor de celdas es TextView.

El elemento de la selección de liderazgo del nodo de contexto pasa a ser una entrada en tabla resaltada al visualizarse en la pantalla (esto no depende de si se tiene una columna de selección).n o 1. El elemento de UI consta de un área de cabecera opcional.n. 10-07-2009 © 2009 SAP AG. El elemento de UI Table. 323 . No obstante. El elemento de UI Table debe asociarse a un nodo de contexto de cardinalidad 0.TAW12_2 Lección: Definición de la interfase de usuario (UI) Gráfico 184: El elemento de UI Table Asociación de una Table al contexto El elemento de UI Table permite visualizar en dos dimensiones los datos de las celdas dispuestos en filas y columnas. En este caso. se podrá utilizar la entrada del menú contextual Crear asociación para crear la asociación completa. la definición de la vinculación de contexto completa forma parte del proceso del asistente. si el elemento de UI Table se ha añadido a la jerarquía de elementos manualmente. se puede crear utilizando el asistente de codificación Web Dynpro... El título ubicado en la parte superior de la tabla (Vuelos en la siguiente figura) es opcional. Show Demo NET310_UI_D3 here. Focus on: Data binding of TABLE UI element. cero o más filas y un área de pie de página. con sus elementos subordinados. Reservados todos los derechos.

Cualquier atributo de nodo de un tipo de datos sencillo se puede convertir en una columna de tabla. Reservados todos los derechos. 324 © 2009 SAP AG. Los elementos de UI TableColumn son elementos de UI compuestos.Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 Gráfico 185: Vinculación de un elemento de UI Table al contexto Elementos de UI TableColumn El elemento de UI Table debe incluir al menos un elemento de UI TableColumn. El texto visualizado en la cabecera de columna se puede obtener a partir del Dictionary ABAP si la propiedad Text del elemento de UI Caption se ha dejado en blanco y si el atributo del contexto visualizado en esta columna está tipificado con un elemento de datos de Dictionary ABAP. Esto significa que deben tener elementos de UI subordinados para poder funcionar correctamente. La cabecera de columna se crea mediante un elemento Caption. 10-07-2009 . En este caso. Los elementos de UI TableColumn deberán vincularse a los atributos del mismo nodo a los que esté vinculado el elemento de UI Table superior. los valores de todas las celdas de la columna son iguales. Consejo: Un elemento de UI TableColumn puede asociarse a un atributo que no sea un subordinado del nodo al que el elemento de UI Table está asociado.

325 . En este caso los usuarios no pueden introducir datos. Reservados todos los derechos. No crea que. pero si se define siempre será del tipo Caption. el elemento de UI que elija no lo permitirá. Show Demo NET310_UI_D3 here. para la entrada. un elemento de UI TableColumn debe tener un elemento de UI subordinado que actuará como editor de celdas. entonces el valor de celda se visualizará en el texto del botón.TAW12_2 Lección: Definición de la interfase de usuario (UI) Gráfico 186: Elementos de UI TableColumn Elementos de UI subordinados de un TableColumn Para presentar la información al usuario. debe aclararse el tipo de interacción entre el usuario y los datos de cada columna. El título que aparece como cabecera de columna es opcional. 10-07-2009 © 2009 SAP AG. Si selecciona un Button. porque el nombre de este rol contenga la palabra “editor” el usuario podrá modificar los datos necesariamente. por otra parte. el usuario no podrá modificar los datos. Para decidir qué elemento de UI utilizar. todas las celdas que aparezcan en dicha columna se abrirían. por defecto. selecciona un InputField para que sea el editor de celdas de la tabla. Si. Focus on: Data binding of cell editors. Si se selecciona alguna clase de elemento de UI sólo de visualización como TextView. pero pueden activar un evento de mandante.

y la selección de lead de este nodo cambia para reflejar la selección del usuario. 326 © 2009 SAP AG. Gráfico 187: Definición de elementos de UI subordinados para un TableColumn Selección de una entrada en tabla y su efecto en la selección de liderazgo del nodo Cada vez que haga clic en el pulsador de selección de una fila de tabla en la pantalla renderizada. Gather data by creating a service call in the component controller (this has to be explained anyway before the related exercise can be solved. Reservados todos los derechos. Be sure you know which BAPI you want to call. Copy the generated context node containing the mass data to the start view and map the node. Call the service method from WDDOINIT of the view. En la siguiente figura. la serie de nodos contiene dos elementos y el usuario ha hecho clic en la segunda fila de la tabla. If necessary provide data statically. 10-07-2009 .Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 Your component: Now you should show how to create a table. se iniciará un trayecto circular. Este trayecto circular ocasionará el ajuste de la selección de lead del nodo de contexto correspondiente al que esté vinculada esta tabla. Habrá tantas filas en la tabla como elementos en la serie de nodos. Use the WD Code Wizard to create the table display. Esto corresponde al elemento 2 del nodo FLIGHTS.

since the selection cardinality is set to 0. Focus on: Selecting multiple rows (this is allowed. The lead selection does not change. Show Demo NET310_UI_D3 here. Show Demo NET310_UI_D3 here.n o de 1. Gráfico 188: Selección de fila de tabla Selección de varias filas de una tabla Antes de que un usuario pueda seleccionar varias filas en una tabla (manteniendo pulsado MAYÚS o CTRL y haciendo clic en las filas requeridas). Fire the request using the button above the table. 327 .. 10-07-2009 © 2009 SAP AG. lo que significa que se puede seleccionar cero elementos o un elemento.n for this demo). no sólo se ajusta la selección de lead de la serie de nodos cuando el usuario hace clic en una tabla.TAW12_2 Lección: Definición de la interfase de usuario (UI) También puede definir una acción Web Dynpro y asociarla al evento onLeadSelect de la tabla. el nodo de contexto al que está vinculado el elemento de UI Table debe tener una cardinalidad de selección de 0.. La parametrización de cardinalidad de selección predeterminada para cualquier nodo de contexto es 0. sino que el método de conexión wddobeforeaction( ) y el método de controlador de acciones correspondiente de la vista que contiene el elemento de UI TableView se procesan. De este modo. Focus on: Selecting a row sets the lead selection (displayed in the view in the input field)..n...1. Choose CTRL and select some lines. Reservados todos los derechos.

esta propiedad puede tener seis valores. 328 © 2009 SAP AG. que influyen en la posibilidad de seleccionar filas y definir la selección de lead del modo siguiente: Show Demo NET310_UI_D3 here.Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 Cada nodo proporciona el método get_selected_elements( ). que devuelve todos los elementos seleccionados de una tabla interna (tipo WDR_CONTEXT_ELEMENT_SET). Reservados todos los derechos. No obstante. Gráfico 189: Selección de varias filas de una tabla La propiedad SelectionMode del elemento de UI Table Los temas tratados en las dos secciones anteriores sólo afectan al valor por defecto de la propiedad selectionMode de Table (auto). Nota: Una línea de tabla en una vista seleccionada con la selección de lead es sólo una parte del resultado del método get_selected_elements( ) si el parámetro INCLUDING_LEAD_SELECTION del método está establecido en verdadero. 10-07-2009 . Focus on: Choose different settings for the Selection Mode and verify the influence on choosing rows and setting lead selection as described below.

there is no client-side event handling involved. the related hook methods are processed (table on top). Reservados todos los derechos. La propiedad SelectionMode Valor Cantidad mínima de filas seleccionadas Cantidad máxima de filas seleccionadas La selección de una fila de tabla activa un trayecto circular La selección de una fila de tabla establece la selección de lead automático Cardinalidad de selección Cardinalidad de selección X X Unidim. 329 . If the client event of selecting a row is bound to an action.TAW12_2 Lección: Definición de la interfase de usuario (UI) Other interesting demos: NET310_UI_D4 shows that selecting a row leads to an HTTP round trip. However. so the related hook methods in the view controller are not processed (table on bottom). Cardinalidad de selección 1 X X múltiple Cardinalidad de selección Cardinalidad de selección X X ninguno 0 0 - - singleNoLead Cardinalidad de selección 1 - - multiNoLead Cardinalidad de selección - - Cardinalidad de selección Exercise “Displaying Tables” 10-07-2009 © 2009 SAP AG.

TAW12_2 10-07-2009 .Capítulo 10: Definición de la interfase de usuario (UI) 330 © 2009 SAP AG. Reservados todos los derechos.

Reservados todos los derechos.gif. cree un elemento de UI del tipo IMAGE (nombre propuesto: IMAGE_EXPLOSION) y actualice el origen del elemento IMAGE. El archivo gráfico se guarda en el Repository MIME.gif desde la carpeta del Repository MIME SAP → BC → WebDynpro → SAP → PUBLIC → NET310. Active su componente. 3.TAW12_2 299 Lección: Definición de la interfase de usuario (UI) Ejercicio 16: Interfase de usuario: Visualización de objetos de Repository MIME Duración del ejercicio: 20 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Crear elementos de UI del tipo TRAY. La fuente deberá ser el archivo explosion. 331 . cree un elemento de UI de tipo TRAY y. ubicado en la carpeta del Repository MIME SAP → BC → WebDynpro → SAP → PUBLIC → NET310. • Crear elementos de UI del tipo IMAGE. cree un elemento de UI del tipo TRAY (nombre propuesto: TRAY_1) y actualice el texto del título. En el layout de vista. Ejemplo empresarial Desea desarrollar una aplicación Web Dynpro con una vista que incluya la visualización de un archivo gráfico. Cree una aplicación Web Dynpro y realice un test. Cree una vista e incrústelo en la ventana principal del componente. 2. Cree un componente Web Dynpro ZNET310_UI1_## con una vista incrustada en la ventana principal. 4. un elemento de UI del tipo IMAGE que visualice el archivo explosion. En la vista. Modelo: Ninguno Solución: NET310_UI_S1 Tarea: Cree un componente Web Dynpro. 10-07-2009 1. • Visualizar los archivos gráficos guardados en el Repository MIME. En el elemento tray. en la bandeja. © 2009 SAP AG.

c) Abra MIME Repository (seleccione el botón MIME Repository situado en la parte superior del área de navegación de Workbench ABAP). Realice este paso como en los ejercicios anteriores. a) 2. Cree una vista e incrústelo en la ventana principal del componente. c) Actualice el título en la propiedad text del subelemento CAPTION. 1. La fuente deberá ser el archivo explosion. Arrastre explosion. En el elemento tray. b) Introduzca el nombre del elemento IMAGE y seleccione el tipo de elemento IMAGE. un elemento de UI del tipo IMAGE que visualice el archivo explosion. a) Abra el menú contextual de TRAY_1 y seleccione Insertar elemento. ubicado en la carpeta del Repository MIME SAP → BC → WebDynpro → SAP → PUBLIC → NET310. Active su componente. b) Introduzca el nombre del elemento de UI y seleccione el tipo de elemento TRAY. a) 332 Realice este paso como antes. 4. © 2009 SAP AG. a) Abra el menú contextual de ROOTUIELEMENTCONTAINER y seleccione Insertar elemento. cree un elemento de UI del tipo IMAGE (nombre propuesto: IMAGE_EXPLOSION) y actualice el origen del elemento IMAGE.gif y suéltelo en el elemento de UI IMAGE_EXPLOSION.gif. en la bandeja. Cree una aplicación Web Dynpro y realice un test. en la jerarquía de elementos de UI. Reservados todos los derechos. En el layout de vista. En la vista.Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 Solución 16: Interfase de usuario: Visualización de objetos de Repository MIME Tarea: Cree un componente Web Dynpro. 3. 10-07-2009 . cree un elemento de UI del tipo TRAY (nombre propuesto: TRAY_1) y actualice el texto del título. cree un elemento de UI de tipo TRAY y. Cree un componente Web Dynpro ZNET310_UI1_## con una vista incrustada en la ventana principal. d) Abra la carpeta especificada.gif desde la carpeta del Repository MIME SAP → BC → WebDynpro → SAP → PUBLIC → NET310.

Cree el componente Web Dynpro ZNET310_UI2_## con dos vistas (nombres propuestos: INPUT_VIEW y DISPLAY_VIEW) e incruste las vistas en la ventana principal. DESTINATION_TO y FLIGHTLIST. Cree una llamada de servicio en el controlador de componentes existente para el módulo de funciones BAPI_FLIGHT_GETLIST. 1. Ejemplo empresarial Modelo: Ninguno Solución: NET310_UI_S2 Tarea 1: Cree un componente Web Dynpro con dos vistas (vista de entrada y vista de visualización) incrustadas en la ventana principal. Cuando se le pida el nombre del método de servicio. Reservados todos los derechos.TAW12_2 301 Lección: Definición de la interfase de usuario (UI) Ejercicio 17: Interfase de usuario: visualización de tablas Duración del ejercicio: 35 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Crear una llamada de servicio a un módulo de funciones y vincule los parámetros al contexto de controlador • Crear un elemento de UI del tipo TABLE para visualizar datos en masa. 333 . los parámetros de interfase de BAPI se vincularán al contexto de controlador de componentes. Además. Tarea 2: Cree una llamada de servicio del módulo de funciones BAPI_FLIGHT_GETLIST en el controlador de componentes. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. 1. Cuando se le pida que guarde los parámetros en el contexto del controlador. Esto creará un método que encapsulará la llamada BAPI. acepte el nombre por defecto (EXECUTE_BAPI_FLIGHT_GETLIST). seleccione DESTINATION_FROM.

¿Qué entidades del componente se han creado? 3.Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 2. Esto también creará un segundo grupo. Para vincular los campos de entrada a atributos de contexto de vistas. cree un grupo con los campos de entrada para la ciudad de salida y la ciudad de destino. Ajuste el texto que el elemento de UI CITY_LABEL debe visualizar. En el layout de visualización. copie los nodos relevantes del contexto de componente en el contexto de la vista de entrada y defina la asignación de contextos. Repita el último paso para el atributo CITY del nodo de contexto DESTINATION_TO. ¿Cuáles son las cardinalidades de los nodos DESTINATION_FROM y FLIGHTLIST? ¿Por qué son diferentes? Tarea 3: En el layout de visualización de entrada. 2. Copie los nodos DESTINATION_FROM y DESTINATION_TO del contexto de componente al contexto de la vista de entrada y defina la asignación entre los nodos de contexto de los diferentes controladores. Reservados todos los derechos. Ajuste el texto que el elemento de UI CITY_LABEL_1 debe visualizar. Continúa en la página siguiente 334 © 2009 SAP AG. 4. 10-07-2009 . 1. El asistente creará también un elemento de UI de grupo que incluirá los campos de formulario. 3. utilice el asistente de codificación de Web Dynpro para crear un formulario que proporcione un campo de entrada que corresponda al atributo CITY del nodo de contexto DESTINATION_FROM. Mueva todas las etiquetas y campos de entrada de uno de los grupos y elimine el segundo grupo. Ajuste las propiedades de los elementos de UI para asegurarse de que los campos de entrada (con sus etiquetas) se visualizan uno debajo del otro.

Cree una toma de entrada y otra de salida para cada una de las dos vista. Cree enlaces de navegación entre las tomas de las vistas (ambas direcciones). 2. Cree una aplicación Web Dynpro y realice un test. En la vista de visualización. 2. Inicie el asistente de codificación de Web Dynpro para implementar una llamada del método EXECUTE_BAPI_FLIGHT_GETLIST del controlador de componentes (llamada de método En controlador utilizado). 1. 335 .). Proporcione un botón en cada una de las vistas. Cree acciones relacionadas con estos pulsadores y asegúrese de que el punto de navegación de salida correspondiente se active cuando el usuario seleccione el pulsador.. 1.TAW12_2 Lección: Definición de la interfase de usuario (UI) Tarea 4: Copie los nodos relevantes del contexto de componente al contexto de la vista de visualización y asigne los nodos de contexto de los diferentes controladores.. Tarea 6: Utilice el asistente de codificación Web Dynpro para implementar una llamada del método de servicio EXECUTE_BAPI_FLIGHT_GETLIST en el programa de control de eventos para la toma de entrada de la vista de visualización. Tarea 5: Proporcione un pulsador en cada vista e implemente la navegación entre las dos vistas. Active su componente. 2. implemente el método para gestionar el punto de navegación de entrada (método llamado HANDLE. Copie el nodo FLIGHTLIST del contexto de componente al contexto de la vista de visualización y asigne los dos nodos. Utilice el asistente de codificación de Web Dynpro para crear una tabla que visualice la información del vuelo en la vista de visualización. © 2009 SAP AG. 10-07-2009 1. Reservados todos los derechos. 3. Utilice el asistente de codificación de Web Dynpro para crear una visualización de tabla con vinculación al nodo de contexto FLIGHTLIST.

f) Verifique los parámetros que se deberán almacenar en el contexto del controlador y seleccione Continuar. a) Abra el menú contextual del componente Web Dynpro en el área de navegación de Workbench ABAP (a la izquierda) y seleccione Crear → Llamada de servicio. Cuando se le pida que guarde los parámetros en el contexto del controlador. Cree una llamada de servicio en el controlador de componentes existente para el módulo de funciones BAPI_FLIGHT_GETLIST.Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 Solución 17: Interfase de usuario: visualización de tablas Tarea 1: Cree un componente Web Dynpro con dos vistas (vista de entrada y vista de visualización) incrustadas en la ventana principal. c) Seleccione Utilizar controlador existente. DESTINATION_TO y FLIGHTLIST. Además. a) Realice este paso como en los ejercicios anteriores. Esto creará un método que encapsulará la llamada BAPI. Cree el componente Web Dynpro ZNET310_UI2_## con dos vistas (nombres propuestos: INPUT_VIEW y DISPLAY_VIEW) e incruste las vistas en la ventana principal. Continúa en la página siguiente 336 © 2009 SAP AG. los parámetros de interfase de BAPI se vincularán al contexto de controlador de componentes. Reservados todos los derechos. Tarea 2: Cree una llamada de servicio del módulo de funciones BAPI_FLIGHT_GETLIST en el controlador de componentes. d) Seleccione Módulo de funciones y. g) Introduzca el nombre del método de servicio y una descripción y seleccione Continuar. introduzca el nombre del módulo de funciones en el campo Módulo de funciones y seleccione Continuar. a continuación. e) En la siguiente pantalla. 1. Continuar. 1. acepte el nombre por defecto (EXECUTE_BAPI_FLIGHT_GETLIST). seleccione DESTINATION_FROM. b) Seleccione Continuar para confirmar la primera ventana del asistente. introduzca el controlador de componentes de su componente y seleccione Continuar. Cuando se le pida el nombre del método de servicio. 10-07-2009 .

copie los nodos relevantes del contexto de componente en el contexto de la vista de entrada y defina la asignación de contextos. El nodo de contexto BAPI_FLIGHT_GETLIST con varios subnodos para los parámetros IMPORTING y TABLES seleccionados del módulo de funciones El método EXECUTE_BAPI_FLIGHT_GETLIST en el controlador de componentes. En el layout de visualización. Realice este paso como en los ejercicios anteriores.. utilice el asistente de codificación de Web Dynpro para crear un formulario que proporcione un campo de entrada que corresponda al atributo CITY del nodo de contexto DESTINATION_FROM. El parámetro FLIGHTLIST es una tabla interna. Realice este paso como en los ejercicios anteriores. Tarea 3: En el layout de visualización de entrada. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. cree un grupo con los campos de entrada para la ciudad de salida y la ciudad de destino.. Esto también creará un segundo grupo. El asistente creará también un elemento de UI de grupo que incluirá los campos de formulario.. 1. Repita el último paso para el atributo CITY del nodo de contexto DESTINATION_TO. Ajuste el texto que el elemento de UI CITY_LABEL debe visualizar. que encapsula la llamada del módulo de funciones ¿Cuáles son las cardinalidades de los nodos DESTINATION_FROM y FLIGHTLIST? ¿Por qué son diferentes? Respuesta: • DESTINATION_FROM: 1. Para vincular los campos de entrada a atributos de contexto de vistas. a) 2. Copie los nodos DESTINATION_FROM y DESTINATION_TO del contexto de componente al contexto de la vista de entrada y defina la asignación entre los nodos de contexto de los diferentes controladores.1 • FLIGHTLIST: 0.. Ajuste el texto que el elemento de UI CITY_LABEL_1 debe visualizar.TAW12_2 Lección: Definición de la interfase de usuario (UI) 2. 337 .n El parámetro DESTINATION_FROM es una estructura. ¿Qué entidades del componente se han creado? Respuesta: • • 3. Reservados todos los derechos. a) 3.

Utilice el asistente de codificación de Web Dynpro para crear una visualización de tabla con vinculación al nodo de contexto FLIGHTLIST. Utilice el asistente de codificación de Web Dynpro para crear una tabla que visualice la información del vuelo en la vista de visualización. a) Establezca la propiedad Layout de ROOTUIELEMENTCONTAINER a MatrixLayout. Cree el grupo como anteriormente. Copie el nodo FLIGHTLIST del contexto de componente al contexto de la vista de visualización y asigne los dos nodos. 1. Realice este paso como en los ejercicios anteriores.Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 Mueva todas las etiquetas y campos de entrada de uno de los grupos y elimine el segundo grupo. c) Acepte el valor por defecto (editor de celdas estándar TextView y asociación para todos los campos) y seleccione . a) 4. c) Establezca la propiedad Layoutdata de CITY_LABEL a MatrixHeadData. b) Establezca la propiedad Layoutdata del grupo de elementos de UI en MatrixHeadData. d) Establezca la propiedad Layoutdata de CITY_LABEL_1 a MatrixHeadData. Tarea 4: Copie los nodos relevantes del contexto de componente al contexto de la vista de visualización y asigne los nodos de contexto de los diferentes controladores. Ajuste las propiedades de los elementos de UI para asegurarse de que los campos de entrada (con sus etiquetas) se visualizan uno debajo del otro. b) Seleccione Contexto FLIGHTLIST. accione el pulsador Asistente de codificación Web Dynpro y seleccione Estándar → Tabla. 10-07-2009 . a) 2. Mueva todos los elementos de este grupo al primer grupo arrastrando y soltándolos en la jerarquía de elementos de UI. y haga doble clic en el nodo de contexto Continúa en la página siguiente 338 © 2009 SAP AG. Reservados todos los derechos. a) Coloque el cursor sobre ROOTUIELEMENTCONTAINER.

a) Abra el método en el editor. 1. Reservados todos los derechos. Active su componente. Cree enlaces de navegación entre las tomas de las vistas (ambas direcciones). a) 2. En la vista de visualización. implemente el método para gestionar el punto de navegación de entrada (método llamado HANDLE. 2. a) 10-07-2009 Realice este paso como en los ejercicios anteriores. Inicie el asistente de codificación de Web Dynpro para implementar una llamada del método EXECUTE_BAPI_FLIGHT_GETLIST del controlador de componentes (llamada de método En controlador utilizado).. 1. a) Realice este paso como en los ejercicios anteriores. Proporcione un botón en cada una de las vistas. Cree acciones relacionadas con estos pulsadores y asegúrese de que el punto de navegación de salida correspondiente se active cuando el usuario seleccione el pulsador. Cree una toma de entrada y otra de salida para cada una de las dos vista.TAW12_2 Lección: Definición de la interfase de usuario (UI) Tarea 5: Proporcione un pulsador en cada vista e implemente la navegación entre las dos vistas. Cree una aplicación Web Dynpro y realice un test. a) 3. Seleccione Asistente de codificación Web Dynpro y luego Llamada de método en controlador utilizado. Realice este paso como en los ejercicios anteriores. 339 . Tarea 6: Utilice el asistente de codificación Web Dynpro para implementar una llamada del método de servicio EXECUTE_BAPI_FLIGHT_GETLIST en el programa de control de eventos para la toma de entrada de la vista de visualización. b) Seleccione el controlador de componentes y el método que se debe llamar desde la Ayuda para entradas y seleccione .. Realice este paso como en los ejercicios anteriores.). © 2009 SAP AG.

• Usar el elemento de UI de tabla como ejemplo de utilización de elementos de UI compuestos. 340 © 2009 SAP AG.Capítulo 10: Definición de la interfase de usuario (UI) TAW12_2 Resumen de la lección Ahora podrá: • Definir el layout de las vistas mediante la disposición de los elementos de UI y el establecimiento de sus propiedades. 10-07-2009 . Reservados todos los derechos. • Vincular las propiedades de elemento de UI a atributos de contexto.

• Usar el elemento de UI de tabla como ejemplo de utilización de elementos de UI compuestos. 341 . 10-07-2009 © 2009 SAP AG.TAW12_2 Resumen del capítulo Resumen del capítulo Ahora podrá: • Definir el layout de las vistas mediante la disposición de los elementos de UI y el establecimiento de sus propiedades. Reservados todos los derechos. • Vincular las propiedades de elemento de UI a atributos de contexto.

Reservados todos los derechos. 10-07-2009 .Resumen del capítulo 342 TAW12_2 © 2009 SAP AG.

El código fuente se define en los métodos de los controladores personalizados. In particular.Capítulo 11 Programación de contextos y controladores 311 This is the first chapter that deals with the source code of controller methods. En esta unidad se trata la programación de controladores y se hace énfasis en cómo acceder al contexto del controlador. Objetivos del capítulo Al finalizar este capítulo podrá: • • • 10-07-2009 Enumerar los métodos de conexión que existen para los diferentes tipos de controlador. 343 . programmers may not know how to access the controller’s global data (defined in the context). Explicar en qué orden se procesan estos métodos de conexión. la definición de la lógica de programación y el acceso back end requiere la programación del código fuente ABAP. © 2009 SAP AG. ABAP programmers do not usually work with frameworks and they may not be familiar with the need for using framework methods. and data sharing (context mapping) between controllers requires standard data storage. Therefore. data binding between UI properties and context fields requires a standard method for storing data. No obstante. code wizards can be used to define the source code. point out the advantages of such an approach: For example. Crear y llamar sus propios métodos de controlador. as in the classical ABAP programming context. the data cannot be accessed if the API methods for context accesses are not known. Reservados todos los derechos. all data objects are defined using the data statement. los controladores de vistas o los controladores de ventanas. Resumen del capítulo Uno de los puntos fuertes de Web Dynpro es el enfoque declarativo de los metadatos. Here. Este enfoque le permite definir toda la navegación y la UI estática entre los diferentes conjuntos de vistas sin tener que programar código fuente.

..... en especial el contexto de controlador.......... Acceder al contexto de controlador y leer....................... Contenido del capítulo Lección: Programación de contextos y controladores .369 Ejercicio 19: Contexto en tiempo de ejecución: asociación de tablas internas a nodos de contexto . Definir sus propios atributos de controlador y usarlos en los métodos de controlador.......375 Ejercicio 20: Contexto en tiempo de ejecución: selección de liderazgo y funciones de suministro ..............Capítulo 11: Programación de contextos y controladores • • • TAW12_2 Utilizar los atributos de controlador estándar para acceder a las funciones de controlador.... modificar o añadir elementos de la serie..... 10-07-2009 ...........................383 344 © 2009 SAP AG..... Reservados todos los derechos...........................345 Ejercicio 18: Acceso al contexto en tiempo de ejecución .... borrar....

Acceder al contexto de controlador y leer. cuándo y en qué orden se procesan. Utilizar los atributos de controlador estándar para acceder a las funciones de controlador. 10-07-2009 © 2009 SAP AG. Desea saber cómo trabajar con métodos y atributos de controlador. Reservados todos los derechos. se tratarán todos estos aspectos detalladamente. ha trabajado exclusivamente en entidades que se pueden definir de manera declarativa. borrar. se debe entender también cómo definir eventos. Crear y llamar sus propios métodos de controlador.TAW12_2 Lección: 312 Lección: Programación de contextos y controladores Programación de contextos y controladores Duración de la lección: 130 Minutos Resumen de la lección La definición del código fuente de los controladores requiere entender cómo se deben usar los métodos predefinidos (métodos de conexión). provocar estos eventos y registrar el programa de control de eventos correspondiente. References to demos can be found in this lesson. 345 . en especial el contexto de controlador. la lógica de proceso (incluido el acceso a la lógica back end) debe ser implementada mediante la definición de código fuente ABAP en métodos de controlador. modificar o añadir elementos de la serie. cómo se pueden crear métodos adicionales definidos por el usuario y cómo se puede acceder a dichos métodos desde el mismo controlador o desde otro. Además. Finalmente. Ejemplo empresarial Ha creado un componente Web Dynpro. Definir sus propios atributos de controlador y usarlos en los métodos de controlador. Objetivos de la lección Al finalizar esta lección podrá: • • • • • • Enumerar los métodos de conexión que existen para los diferentes tipos de controlador. es crucial acceder al contexto de controlador (leer. para implementar controladores. En esta lección. Hasta el momento. modificar y eliminar datos almacenados en el controlador). Explicar en qué orden se procesan estos métodos de conexión. No obstante.

Gráfico 190: Métodos de controlador La clase de controlador se genera cada vez que se activa el controlador a partir de todos los métodos de controlador. métodos de programa de control de eventos o funciones de suministro. Además de estos métodos de conexión. estos métodos están vacíos y pueden incluir cualquier codificación que el desarrollador desee colocar en ellos. métodos de conexión y métodos definidos por el usuario. Reservados todos los derechos. 346 © 2009 SAP AG. el desarrollador puede definir métodos adicionales: métodos de instancia. Estos métodos se conocen como métodos de conexión. 10-07-2009 . El código fuente que implementa a estos controladores se genera automáticamente. Workbench ABAP le permite introducir código fuente únicamente en los métodos de controlador. En el momento de la creación del controlador. Cada controlador proporciona una serie de métodos predefinidos que el Web Dynpro llama en tiempo de ejecución siguiendo un orden predefinido. la clase de controlador generada no está accesible.Capítulo 11: Programación de contextos y controladores TAW12_2 Métodos de controlador Cada controlador Web Dynpro es una clase ABAP separada. La definición de estas clases se genera automáticamente cuando se crea un controlador o un componente nuevo.

Sólo se llama una vez en el ciclo de vida del controlador. Reservados todos los derechos. • wddoexit( ) : wddoexit( ) es el último método procesado al final del ciclo de vida de un controlador. Gráfico 191: Métodos de conexión estándar para todos los controladores 10-07-2009 © 2009 SAP AG. 347 . Todo su código de depuración deberá ir aquí. ya que este método se llama inmediatamente una vez instanciado el controlador.TAW12_2 Lección: Programación de contextos y controladores Métodos de conexión Existen dos métodos de conexión para todos los tipos de controlador: • wddoinit( ) : wddoinit( ) es el primer método procesado en la duración del controlador. Todo su código de inicialización deberá ir aquí.

Capítulo 11: Programación de contextos y controladores TAW12_2 En función del tipo de controlador. Reservados todos los derechos. 10-07-2009 . existen tres métodos estándar adicionales. Dos de ellos son especialmente importantes: • wddobeforenavigation() Cuando se provoca un evento de mandante. Se llama al método wddobeforenavigation( ) después de que se haya procesado el método de acciones y justo antes de que el marco Web Dynpro procese los eventos de la cola de navegación. • wddopostprocessing() En aplicaciones Web Dynpro complejas. Gráfico 192: Métodos de conexión estándar: Controlador de componentes 348 © 2009 SAP AG. Este método se ha creado para que se pueda llevar a cabo la validación con independencia del componente. Es el último método de controlador que se procesa antes de enviar la UI al cliente. hay disponibles métodos de conexión adicionales. puede que sea necesario validar los datos desde varios componentes antes de poder pasar al siguiente paso del proceso empresarial. el método de acciones correspondiente se procesa en el controlador de vistas. Para el controlador de componentes.

349 . existen dos métodos de conexión adicionales: • wddobeforeaction() Una vez que se ha iniciado la aplicación Web Dynpro y que el usuario ha provocado un evento de mandante. Reservados todos los derechos. El parámetro de interfase VIEW es una referencia a la jerarquía de elementos de UI. se puede utilizar el parámetro FIRST_TIME para averiguar si este método puede procesarse anteriormente en el ciclo de vida del controlador de vistas. • wddomodifyview( ) El único método que permite el acceso a la jerarquía de elementos de UI es el método wddomodifyview( ) de la vista. the phase model for controller processing can be visualized. Este evento se puede utilizar para manipular la jerarquía de elementos de UI dinámicamente. NET310_EVEN_D2: Order of hook methods for two views in one window. The views lifetime is restricted. Here. Gráfico 193: Métodos de conexión estándar: Controlador de vista Here. los primeros métodos que se deben procesar en la aplicación Web Dynpro son los métodos wddobeforeaction( ) de todos los controladores de vistas del conjunto de vistas renderizado anteriormente. 10-07-2009 © 2009 SAP AG. Esto ocurre incluso antes de que el método de controlador de acciones relacionado con el evento de mandante se procese. the following demos should be shown: NET310_EVEN_D1: Order of hook methods for one view in one window. NET310_EVEN_D2A: Order of hook methods for two views in one window.TAW12_2 Lección: Programación de contextos y controladores Para los controladores de vistas.

el controlador que llama al método debe definir una relación de utilización con el controlador al que pertenecen los métodos. Métodos de instancia de controlador Puede crear métodos adicionales para todos los controladores mediante la declaración del nombre del método y sus parámetros en la etiqueta Métodos de la ventana del editor de controlador. Si el indicador Interfase está establecido para un método definido por el usuario. One view contains two view containers. de modo que el método esté visible para otros componentes. 350 © 2009 SAP AG. El código fuente ABAP para llamar a un método en el controlador utilizado puede generarse mediante el asistente de codificación Web Dynpro. Para terminar. so they are displayed in parallel. el método se puede registrar estáticamente para cada evento desencadenado en un controlador definido como Controlador usado en la etiqueta Propiedades. En la columna Evento. se puede definir la firma y el código fuente del método. The other views are embedded in these view containers.Capítulo 11: Programación de contextos y controladores TAW12_2 NET310_EVEN_D3: Order of hook methods for three views in one window. Para definir un método de instancia. Como condición previa. se puede definir el tipo de método = función de suministro para definir métodos vinculados a nodos de contexto (propiedad Función de suministro). A estos métodos se les llama automáticamente desde el marco Web Dynpro si se accede al nodo y éste está marcado como inválido. 10-07-2009 . Si selecciona Tipo de método = Programa de control de eventos. Después de hacer doble clic en el nombre del método. Todos los métodos son públicos y los puede utilizar otro controlador del mismo componente. este método aparecerá en la interfase del componente. Reservados todos los derechos. se creará un método de programa de control de eventos. seleccione Tipo de método = Método.

Define this controller to be a used controller for one of your view controllers. que no tiene únicamente métodos predefinidos y definidos por el usuario. 351 . Look at source code. Reservados todos los derechos. sino también atributos visibles como mínimo para cada método del controlador. 10-07-2009 © 2009 SAP AG.TAW12_2 Lección: Programación de contextos y controladores Gráfico 194: Métodos de instancia de controlador Your component: Create a new method in the custom controller. Atributos de controlador Cada controlador es un programa ABAP independiente. Call the custom controller method from this view controller.

por consiguiente. Todo acceso al contexto del controlador se inicia con esta referencia. se creará automáticamente un atributo adicional para el controlador que ha declarado la utilización: • WD_COMP_CONTROLLER WD_COMP_CONTROLLER es la referencia al controlador de componentes. siendo <meth> un reserva-espacio para el nombre del método). como la validación. y representa todas las funciones implementadas en la clase generada. Estos atributos están visibles sólo para los métodos de controlador. Los atributos estándar son: • WD_THIS WD_THIS es una autoreferencia a la interfase del controlador. a todo el contexto. que no deberá utilizarse en el código fuente de ningún controlador. 10-07-2009 . Gráfico 195: Atributos de controlador estándar WD_CONTEXT y WD_THIS Si el controlador de componentes se declara como controlador utilizado en la ficha Propiedades de cualquier otro controlador. Este atributo debe distinguirse de la autoreferencia ABAP estándar ME. 352 © 2009 SAP AG. como mínimo se predefinen dos atributos. • WD_CONTEXT WD_CONTEXT es una referencia al nodo raíz de contexto del controlador y. Reservados todos los derechos. WD_THIS es una referencia a la interfase del controlador actual. Mediante esta referencia podrá acceder a todos los métodos y atributos públicos del controlador de componentes (wd_comp_controller-><meth>.Capítulo 11: Programación de contextos y controladores TAW12_2 Atributos estándar Después de haber definido un controlador. IF_<nombre de controlador>. También le da acceso a funciones Web Dynpro estándar.

pueden definirse los atributos adicionales para el controlador relacionado. se debe utilizar la variable de autoreferencia WD_THIS. Los atributos no se pueden mostrar en la interfase de componentes. incluso si están declarados como controladores utilizados. esto no significa que los métodos definidos por el usuario y los atributos públicos no estén disponibles. Look at source code. Para acceder a los atributos de controlador públicos de uno de los métodos del controlador. Compare with the coding to call the custom controller method (for the component controller method. se debe utilizar la siguiente sentencia ABAP: DATA: r_ctrl TYPE REF TO ig_<ctrl> . Para tener la referencia al controlador <ctrl> definida como controlador utilizado. the shortcut variable WD_COMP_CONTROLLER is used). No obstante.TAW12_2 Lección: Programación de contextos y controladores Create an instance method in the component controller and call this method from the view controller. Reservados todos los derechos. Gráfico 196: Atributo de controlador estándar WD_COMP_CONTROLLER Esta referencia no está disponible para todos los demás controladores. estos atributos también estarán visibles para los demás controladores del mismo componente Web Dynpro. sino que primero debe evaluarse la referencia. 10-07-2009 © 2009 SAP AG. El acceso a los atributos públicos definidos en otros controladores del mismo componente se implementa de manera similar al acceso a métodos definidos en otros controladores. Si la visibilidad está establecida como Pública. 353 . r_ctrl = wd_this->get_<ctrl>_ctr( ). Atributos definidos por el usuario En la ficha Atributos.

añadir o eliminar la información almacenada en el contexto de controlador. No obstante. modificar. create two attributes (one public.Capítulo 11: Programación de contextos y controladores TAW12_2 Gráfico 197: Métodos de controlador y atributos de controlador definidos por el usuario Your component: In the component controller. vimos que podíamos utilizar atributos de controlador para proporcionar objetos de datos que son visibles a través del controlador. no se pueden asociar propiedades de elementos de UI a estos atributos de controlador. 354 © 2009 SAP AG. Las propiedades de elementos de UI sólo se pueden asociar a variables definidas en el contexto de controlador. Access these attributes from any method of the component controller. Result: Result: Only the public attribute can be used by another controller. Esta sección trata de cómo leer. Acceso al nodo de contexto Para acceder a un elemento de contexto o a un atributo de contexto. Este almacenamiento de datos jerárquico también es preferible si la información debe compartirse entre controladores. one private). 10-07-2009 . Try to access these attributes from any method of the view controller (WD_COMP_CONTROLLER-><attribute>). Reservados todos los derechos. primero necesita una referencia al nodo de contexto relacionado. El acceso al contexto de controlador en tiempo de ejecución requiere el conocimiento de los métodos Web Dynpro apropiados. Acceso a los nodos de contexto y elementos de nodo en tiempo de ejecución En la última sección.

Este método devuelve una referencia a la instancia de nodo de tipo IF_WD_CONTEXT_NODE. opcionalmente. la referencia al elemento durante la selección de lead de este modo se puede conseguir llamando el método get_element( ). Se puede acceder al nodo raíz de contexto mediante el atributo estándar WD_CONTEXT. Por consiguiente. que siempre tiene un solo elemento. Reservados todos los derechos. El método get_child_node( ) requiere el nombre del nodo y. Los nodos subordinados del nodo raíz de contexto se pueden determinar mediante el método get_child_node( ). Se llama igual que el nodo (en mayúsculas) y usa este nombre como valor. Esta constante puede utilizarse para acceder al nodo de contexto. 10-07-2009 © 2009 SAP AG. 355 . el parámetro de índice es 1 (valor por defecto = selección de lead del elemento superior). el nodo superior es la raíz de contexto. se genera una interfase con el nombre IF_<ctrl>. Este método devuelve una referencia a la instancia de nodo de tipo IF_WD_CONTEXT_ELEMENT. Para cada nodo <nodo> de un contexto de controlador se genera una constante (WDCTX_<nodo>) en esta interfase. del índice del elemento del nodo superior al que pertenece la instancia de nodo deseada.TAW12_2 Lección: Programación de contextos y controladores Gráfico 198: Acceso al nodo de contexto La siguiente información es muy importante: • • Para cada controlador (<ctrl>). Acceso a un elemento de nodo Después de acceder a un nodo de contexto. En este caso.

El número de elementos de una serie se puede obtener a partir del método get_element_count( ) Conclusión Resumen: acceso a nodos de contexto y elementos de nodo Acción 356 Método Referencia al nodo <nodo> de un controlador <ctrl> r_node = wd_context->get_child_node( name = if_<ctrl>=>wdctx_<node> ). 10-07-2009 . Reservados todos los derechos. Referencia a un elemento de la selección de lead r_element = r_node->get_element( ). © 2009 SAP AG.Capítulo 11: Programación de contextos y controladores TAW12_2 Gráfico 199: Acceso al elemento de nodo de la selección de lead Se puede acceder al elemento con el índice n mediante el método get_element( index = n ). Obtener el número de elementos de una serie n = r_node->get_element_count( ). Referencia al elemento con el índice n r_element = r_node->get_element( index = n ).

method DOINIT. Check what happens if the node’s cardinality is 0. Use the code wizard to access attributes.<something> and no elements have been added to the collection yet (Result: get_element( ) will return an initial element reference. Acceso a los atributos de un elemento de nodo individual Una vez obtenida la referencia a un elemento de nodo. Los atributos definidos estáticamente se pueden obtener llamando al método get_static_attributes( ). De este modo se devuelve una estructura en un parámetro de importación.TAW12_2 Lección: Programación de contextos y controladores Your component: in your component controller. access the element at lead selection of any of your nodes. La estructura de destino puede ser diferente de la estructura de nodo. 357 . © 2009 SAP AG. existen dos maneras de obtener los valores de atributo de este elemento: 1. Aquí se debe exportar el nombre del atributo y el valor de atributo se devolverá en un parámetro de importación. 10-07-2009 Se puede acceder a cualquier atributo de un elemento de nodo mediante el método get_attribute( ). 2. Reservados todos los derechos. Lectura y modificación de valores de atributo El marco Web Dynpro ofrece una variedad de métodos para acceder a los atributos de un elemento de nodo o para acceder a los atributos de todos los elementos de un nodo de contexto. this should be handled). Esto es posible porque los campos de estructura se copian de manera individual en la estructura de destino. but only show the coding discussed up to now..

Reservados todos los derechos. 10-07-2009 .Capítulo 11: Programación de contextos y controladores TAW12_2 Gráfico 200: Acceso a un atributo individual de un elemento de nodo Gráfico 201: Acceso a todos los atributos definidos estáticamente de un elemento de nodo 358 © 2009 SAP AG.

El tipo de línea de esta tabla es element_<nodo>. 10-07-2009 © 2009 SAP AG. La siguiente información es importante en este contexto: • • Para cada nodo <nodo> de un contexto de controlador.TAW12_2 Lección: Programación de contextos y controladores Your component: Use the code wizard to generate coding to read a single attribute or all static attributes of a node element at lead selection. Este tipo de datos se puede utilizar para tipificar una variable. Este tipo de datos se puede utilizar para tipificar una tabla interna que pueda incluir los atributos de varios elementos de nodo. 359 . Los campos de estructura corresponden a los atributos que componen un elemento de nodo. se genera de manera implícita un tipo de estructura element_<nodo> en la interfaz IF_<ctrl>. Reservados todos los derechos. para cada nodo <nodo> de un contexto de controlador. Acceso a los atributos de todos los elementos de nodo Gráfico 202: Acceso a los atributos estáticos de todos los elementos de nodo El método get_static_attributes_table( ) se puede utilizar para recuperar los atributos de todos los elementos como tabla interna. se genera de manera implícita un tipo de tabla estándar element_<nodo> en la interfaz IF_<ctrl>. Además. que los métodos enumerados anteriormente completan con datos.

you could read the mass data from the context. podrá no sólo leer los valores de atributo mediante los métodos getter apropiados. After calling the service method. sino también modificar los valores de atributo existentes llamando los métodos setter relacionados. Reservados todos los derechos. 10-07-2009 . El método set_attribute( ) se puede utilizar para modificar el valor de cualquier atributo del elemento de nodo. using the get_static_attributes_table() method. Se pueden modificar varios atributos si están definidos estáticamente mediante el método set_static_attributes( ). Gráfico 203: Modificación de un atributo individual de un elemento de nodo 360 © 2009 SAP AG. Modificación de los valores de atributo de un elemento de nodo Una vez determinada la referencia a un elemento de nodo específico.Capítulo 11: Programación de contextos y controladores TAW12_2 Your component: You have created a service call to bind mass data to a related context node.

361 . Leer el valor de varios atributos estáticos DATA: s_struc TYPE if_<ctrl>=>wdctx_element_<node>. © 2009 SAP AG. Reservados todos los derechos. r_element->get_attribute( EXPORTING name = ’<attr>’ IMPORTING value = v_value ). ref_element->get_static_attributes( IMPORTING static_attributes = s_struc ).TAW12_2 Lección: Programación de contextos y controladores Gráfico 204: Modificación de varios atributos de un elemento de nodo Conclusión Resumen: Acceso a atributos en el nodo <nodo> del controlador <ctrl> y modificación Acción 10-07-2009 Método Leer el valor del atributo <atr> DATA: v_value TYPE if_<ctrl>=>wdctx_element_<node>-<attr>.

. Modificación de DATA: varios atributos de s_struc TYPE un elemento de nodo if_<ctrt>=>wdctx_element_<node>. que señala al nodo raíz de contexto. . Exercise “Accessing the Context at Runtime” Adición de elementos nuevos a un nodo de contexto Hasta ahora hemos hablado de la lectura y la modificación de datos ya almacenados en el contexto de controlador. ref_element->set_static_attributes( EXPORTING static_attributes = s_struc ). Reservados todos los derechos. Creación de un elemento de nodo nuevo Para crear un elemento que se pueda añadir a un nodo de contexto.. el nuevo elemento se puede añadir al nodo de contexto. 362 © 2009 SAP AG. El primer paso es definir los valores de celda de un área de trabajo que tenga el tipo de línea correcto.Capítulo 11: Programación de contextos y controladores Acción TAW12_2 Método Leer los valores de atributo estáticos para todos los elementos de nodo DATA: t_tab TYPE if_<ctrl>=>wdctx_elements_<node>. La adición de un elemento nuevo a un nodo se realiza en dos pasos. s_struc-<attr1> = . Para ello se usa el método get_child_node( ) del atributo estándar WD_CONTEXT. 10-07-2009 . Una vez definidos los valores de atributo... ref_node->get_static_attributes_table( IMPORTING table = t_tab ). Es similar al proceso de adición de una línea nueva a una tabla interna. Ahora aprenderemos a añadir elementos nuevos a un nodo de contexto. primero hay que determinar la referencia a dicho nodo. y el segundo paso es insertar el área de trabajo en una tabla interna. Modificar el valor v_value de un atributo <atr> individual ref_element->set_attribute( EXPORTING name = ’<attr>’ value = v_value ). El primer paso es crear un elemento que se pueda añadir más tarde a un nodo de contexto específico.

TAW12_2 Lección: Programación de contextos y controladores Gráfico 205: Determinación de la referencia a un nodo de contexto Una vez determinada esta referencia. se utiliza el método create_element( ) para crear el elemento nuevo. 10-07-2009 © 2009 SAP AG. Atención: El elemento nuevo todavía no forma parte del nodo de contexto. Reservados todos los derechos. Se pueden enviar los valores iniciales para los atributos estáticos mediante el parámetro static_attribute_values o se pueden definir los valores de atributo mediante los métodos de establecimiento set_attribute( ) o set_static_attributes( ). 363 .

Capítulo 11: Programación de contextos y controladores TAW12_2 Gráfico 206: Creación de un elemento de nodo nuevo Gráfico 207: Establecimiento de los valores de atributo del elemento nuevo 364 © 2009 SAP AG. Reservados todos los derechos. 10-07-2009 .

que se refiere a la referencia del nodo. set the context attributes displayed in the layout and add the element to the collection. The application terminates. Change the cardinality of the related context node to 0. create a context element. In the WDDOINIT method of this view. El parámetro set_initial_elements define si el elemento nuevo se añade simplemente a la serie de elementos (valor = abap_false) o sustituye a todos los elementos existentes de la serie (valor = abap_true).1. Input fields are ready for input and attribute values are displayed. Start the application. you have some input fields bound to context attributes. Gráfico 208: Vinculación de un elemento a un nodo de contexto Your component: On your first view. Reservados todos los derechos. 10-07-2009 © 2009 SAP AG. Este método tiene dos parámetros de importación: • • La referencia de elemento se envía mediante el parámetro new_item. 365 . se puede añadir al nodo un elemento que aún no forme parte del nodo de contexto mediante el método bind_element( )..TAW12_2 Lección: Programación de contextos y controladores Adición de elementos a un nodo de contexto Para terminar. Start the application again.

y este elemento debe vincularse al nodo de contexto adecuado. el contenido de tabla interna se debe copiar en tantos elementos de contexto como líneas haya en la tabla interna. Gráfico 209: Asociación de una estructura a un nodo de contexto Asociación de una tabla interna a un nodo de contexto En los programas ABAP. La tabla interna se envía mediante el parámetro new_items. el contenido de la estructura debe copiarse en un elemento de contexto. La serie existente se puede ampliar o sustituir (parámetro set_initial_elements). si varios registros de datos tienen la misma estructura. para visualizar los elementos de estructura en la UI. Reservados todos los derechos.Capítulo 11: Programación de contextos y controladores TAW12_2 Asociación de una estructura a un nodo de contexto En los programas ABAP. puede utilizar el método bind_structure( ) con el parámetro new_item para enviar la estructura. Al igual que en el método bind_element( ). 366 © 2009 SAP AG. No obstante. En lugar de utilizar el método bind_element( ) y de enviar la referencia del elemento. son tratados como tablas internas. la serie existente se puede ampliar o sustituir (parámetro set_initial_elements). los registros de datos se tratan como estructuras. deben establecerse los valores de atributo. 10-07-2009 . para poder visualizar los conjuntos de datos en la UI. No obstante. Existe una manera más fácil de copiar el contenido de la estructura como elemento nuevo en el nodo de contexto. Esto significa que debe definirse un elemento nuevo. La mejor forma de hacerlo es utilizar el método bind_table( ).

TAW12_2 Lección: Programación de contextos y controladores Gráfico 210: Asociación de una tabla interna a un nodo de contexto Here. The reference to the node to be altered by the supply function is available using the interface parameter NODE and the reference to the element at lead selection in the parent collection is provided by the interface parameter PARENT_ELEMENT. node->create_element(). you should show demo NET310_UI_D5. node->get_lead_selection(). the source code of the supply function is of interest. Two demos can be shown: NET310_CONR_D1: The following method calls can be discussed while debugging the source code of this demo: node->get_element(). Only data retrieval has to be implemented. 367 . node->bind_structure(). element->set_static_attributes() and element->set_attribute(). llame el método remove_element( ). node->get_element_count(). Reservados todos los derechos. Eliminación de elementos de un nodo de contexto Para eliminar un elemento de una serie. You can also implement a supply function for any node of your component controller context. Here. node->bind_element(). 10-07-2009 © 2009 SAP AG. La referencia al elemento debe enviarse mediante el parámetro elemento.

r_node->bind_structure( new_item = s_struc set_initial_elements = abap_false ).Capítulo 11: Programación de contextos y controladores TAW12_2 NET310_CONR_D2: In addition. Exercises “Binding Internal Tables to Context Nodes” and “Lead Selection and Supply Functions” 368 © 2009 SAP AG.. r_node->bind_table( new_items = t_tab set_initial_elements = abap_false ).. the method call node->remove_element() is used in this demo. 10-07-2009 . Añadir el elemento a la serie r_node->bind_element( new_item = r_element set_initial_elements = abap_false ).. . . Conclusión Resumen: Adición de elementos a / Eliminación de elementos de un nodo de contexto Acción Método Cree un nuevo elemento r_element = r_node->create_element( ). Reservados todos los derechos. Eliminar el elemento de la serie r_node->remove_element( element = r_element ). Vincular la tabla interna t_tab a la serie DATA: t_tab TYPE if_<ctrt>=>wdctx_elements_<node>.. Vincular la estructura s_struc a la serie DATA: s_struc TYPE if_<ctrt>=>wdctx_element_<node>.

• Establecer los valores por defecto para campos de entrada dinámicamente. 2.TAW12_2 333 Lección: Programación de contextos y controladores Ejercicio 18: Acceso al contexto en tiempo de ejecución Duración del ejercicio: 15 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Establecer el valor de los atributos de nodo de contexto dinámicamente. 1. Copie el modelo. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. Implemente el método WDDOINIT del controlador de vistas. Tarea 2: Haga de AA el valor por defecto del campo CARRID antes de que se visualice la vista de entrada. Reservados todos los derechos. 1. Sustituya la última llamada de método (método get_static_attributes) por una llamada de un método de elemento de contexto para establecer el valor del atributo CARRID en AA. Modifique el layout de las vistas. 2. Ejemplo empresarial Desea desarrollar una aplicación Web Dynpro en la que los campos de entrada de la primera vista se rellenan con valores por defecto en tiempo de ejecución. 369 . Modifique el layout de ambas vistas y asegúrese de que los dos campos de entrada (con sus etiquetas) y los pulsadores estén unos debajo de los otros. Utilice el asistente de codificación de Web Dynpro para leer el nodo de contexto FLIGHTINFO. Modelo: NET310_COND_S Solución: NET310_CONR_S1 / NET310_CONR_S1_OPT Tarea 1: Copie su componente Web Dynpro ZNET310_COND_## o el modelo NET310_COND_S en el componente Web Dynpro ZNET310_CONR1_##.

1. Reservados todos los derechos. Convierta la última llamada de método en un comentario. Sustitúyala de la siguiente manera: Complete la estructura stru_flightinfo con valores por defecto y llame un método del elemento de contexto para establecer todos los atributos en un solo paso. 370 © 2009 SAP AG.Capítulo 11: Programación de contextos y controladores TAW12_2 Tarea 3: (Opcional) Establezca valores por defecto para todos los campos de entrada antes de que se visualice la vista. Utilice una estructura y una llamada de método individual en lugar de establecer los valores por defecto uno a uno. 10-07-2009 .

Sustituya la última llamada de método (método get_static_attributes) por una llamada de un método de elemento de contexto para establecer el valor del atributo CARRID en AA. a) Modifique la propiedad Layout de ROOTUIELEMENTCONTAINER a MatrixLayout. Copie el modelo. a) Accione el pulsador Asistente de codificación Web Dynpro. 1. b) Modifique la propiedad Layout del grupo a MatrixLayout. Modifique el layout de las vistas. b) Seleccione Leer atributo/nodo de contexto y utilice la Ayuda para entradas para seleccionar el nodo de contexto. 2. 371 . c) Establezca la propiedad Layoutdata del grupo. Modifique el layout de ambas vistas y asegúrese de que los dos campos de entrada (con sus etiquetas) y los pulsadores estén unos debajo de los otros. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. Implemente el método WDDOINIT del controlador de vistas. Realice este paso como en los ejercicios anteriores. Tarea 2: Haga de AA el valor por defecto del campo CARRID antes de que se visualice la vista de entrada.TAW12_2 Lección: Programación de contextos y controladores Solución 18: Acceso al contexto en tiempo de ejecución Tarea 1: Copie su componente Web Dynpro ZNET310_COND_## o el modelo NET310_COND_S en el componente Web Dynpro ZNET310_CONR1_##. Utilice el asistente de codificación de Web Dynpro para leer el nodo de contexto FLIGHTINFO. 1. a) 2. a) Consulte la muestra de código fuente de la solución modelo en Resultado. las etiquetas y los pulsadores en MatrixHeadData. Reservados todos los derechos.

a) Consulte la muestra de código fuente de la solución modelo. Sustitúyala de la siguiente manera: Complete la estructura stru_flightinfo con valores por defecto y llame un método del elemento de contexto para establecer todos los atributos en un solo paso. * navigate from <CONTEXT> to <FLIGHTINFO> via lead selection node_flightinfo = wd_context->get_child_node( name = if_input_view=>wdctx_flightinfo ). ENDMETHOD. * get element via lead selection elem_flightinfo = node_flightinfo->get_element( ). Resultado Solución modelo: NET310_CONR_S1. * set single attribute elem_flightinfo->set_attribute( EXPORTING name = ’CARRID’ value = ’AA’ ). Utilice una estructura y una llamada de método individual en lugar de establecer los valores por defecto uno a uno. Convierta la última llamada de método en un comentario. Solución modelo: NET310_CONR_S1_OPT METHOD wddoinit . DATA: node_flightinfo TYPE REF TO if_wd_context_node.Capítulo 11: Programación de contextos y controladores TAW12_2 Tarea 3: (Opcional) Establezca valores por defecto para todos los campos de entrada antes de que se visualice la vista. 10-07-2009 . elem_flightinfo TYPE REF TO if_wd_context_element. METHOD wddoinit . Reservados todos los derechos. Continúa en la página siguiente 372 © 2009 SAP AG. 1.

* get element via lead selection elem_flightinfo = node_flightinfo->get_element( ). 10-07-2009 © 2009 SAP AG. * set all declared attributes stru_flightinfo-carrid = ’AA’.TAW12_2 Lección: Programación de contextos y controladores DATA: node_flightinfo TYPE REF TO if_wd_context_node. stru_flightinfo TYPE if_input_view=>element_flightinfo . ENDMETHOD. elem_flightinfo TYPE REF TO if_wd_context_element. Reservados todos los derechos. elem_flightinfo->set_static_attributes( exporting static_attributes = stru_flightinfo ). * navigate from CONTEXT to FLIGHTINFO via lead selection node_flightinfo = wd_context->get_child_node( name = ‘FLIGHTINFO‘ ). 373 . stru_flightinfo-connid = ’0400’.

TAW12_2 10-07-2009 . Reservados todos los derechos.Capítulo 11: Programación de contextos y controladores 374 © 2009 SAP AG.

cree un nuevo nodo de contexto (nombre propuesto: FLIGHTTAB) con referencia a la estructura de Dictionary ABAP SFLIGHT y la cardinalidad 0. cree un nuevo nodo de contexto para almacenar sets de datos leídos desde la tabla de base de datos SFLIGHT. En el contexto de componente. Después de que el usuario seleccione un pulsador. se seleccionarán los datos y el sistema navegará a una segunda vista.n..TAW12_2 339 Lección: Programación de contextos y controladores Ejercicio 19: Contexto en tiempo de ejecución: asociación de tablas internas a nodos de contexto Duración del ejercicio: 30 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Vincular tablas internas a nodos de contexto en tiempo de ejecución. FLDATE. SEATSMAX y SEATSOCC. 375 . en la que los datos seleccionados se visualizarán como una tabla. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. CONNID. Ejemplo empresarial Desea desarrollar una aplicación Web Dynpro en la que el usuario pueda introducir criterios de selección en la primera vista. Reservados todos los derechos. PLANETYPE. Modelo: NET310_CONR_S1_OPT Solución: NET310_CONR_S2 Tarea 1: Copie su componente Web Dynpro ZNET310_CONR1_## o el modelo NET310_CONR_S1_OPT en el componente Web Dynpro ZNET310_CONR2_##. El nodo deberá contener los siguientes atributos: CARRID. 1. Copie el modelo.. 2. En el contexto de componente.

Reservados todos los derechos. 2. Utilice CARRID y CONNID del nodo de contexto FLIGHTINFO para limitar la selección de datos. Utilice el método estático CL_NET310_FLIGHTMODEL=>READ_FLIGHTS() para rellenar la tabla interna (parámetro de exportación e_flights). Continúa en la página siguiente 376 © 2009 SAP AG. Copie el nodo de contexto de componente FLIGHTTAB en el contexto de la vista OUTPUT_VIEW. 3. Utilice el asistente de codificación de Web Dynpro para leer el nodo de contexto FLIGHTINFO. Cree un método nuevo en el controlador de componentes (nombre propuesto: FLIGHTTAB_FILL). Utilice el asistente de codificación Web Dynpro para crear una visualización de tabla con vinculación al nodo de contexto FLIGHTTAB. Asigne el nodo del contexto de controlador de vistas al nodo del contexto de controlador de componentes. Llame el método BIND_TABLE del nodo de contexto FLIGHTTAB para almacenar el contenido de la tabla interna en el nodo de contexto. 5. 1. 10-07-2009 . Amplíe el layout de la vista para visualizar los datos de la tabla. elimine todas las llamadas de método creadas por el asistente a excepción de la primera (método GET_CHILD_NODE). Cree una tabla interna (nombre propuesto: IT_FLIGHTTAB) del tipo de tabla if_componentcontroller=>elements_flighttab. Almacene el resultado en el nodo de contexto FLIGHTTAB. 1. 2. Utilice el método estático CL_NET310_FLIGHTMODEL=>READ_FLIGHTS() para leer los datos.Capítulo 11: Programación de contextos y controladores TAW12_2 Tarea 2: Copie el nuevo nodo de contexto en el contexto de la vista OUTPUT_VIEW y asigne los nodos de contexto de los diferentes controladores. Tarea 3: Cree un método en el controlador de componentes en el que pueda seleccionar vuelos desde la tabla de base de datos SFLIGHT y almacenarlos en una tabla interna. 4. Como no desea leer datos desde el contexto sino almacenar datos allí. Utilice el asistente de codificación de Web Dynpro para leer el nodo de contexto FLIGHTTAB después de llamar el método estático CL_NET310_FLIGHTMODEL=>READ_FLIGHTS().

TAW12_2 Lección: Programación de contextos y controladores Tarea 4: Asegúrese de que su nuevo método de controlador de componentes se ejecuta después de la navegación. © 2009 SAP AG. 1. 377 . 10-07-2009 Trate el método HANDLEFROM_INPUT_VIEW del controlador de vistas OUTPUT_VIEW y utilice el asistente de codificación de Web Dynpro para implementar una llamada del método de controlador de componentes. Reservados todos los derechos. inmediatamente antes de que se visualice la vista de salida.

a) 2. El nodo deberá contener los siguientes atributos: CARRID.. FLDATE. a) Realice este paso como en los ejercicios anteriores. Asigne el nodo del contexto de controlador de vistas al nodo del contexto de controlador de componentes. Copie el modelo. Continúa en la página siguiente 378 © 2009 SAP AG. 10-07-2009 . Utilice el asistente de codificación Web Dynpro para crear una visualización de tabla con vinculación al nodo de contexto FLIGHTTAB. cree un nuevo nodo de contexto para almacenar sets de datos leídos desde la tabla de base de datos SFLIGHT.Capítulo 11: Programación de contextos y controladores TAW12_2 Solución 19: Contexto en tiempo de ejecución: asociación de tablas internas a nodos de contexto Tarea 1: Copie su componente Web Dynpro ZNET310_CONR1_## o el modelo NET310_CONR_S1_OPT en el componente Web Dynpro ZNET310_CONR2_##. cree un nuevo nodo de contexto (nombre propuesto: FLIGHTTAB) con referencia a la estructura de Dictionary ABAP SFLIGHT y la cardinalidad 0. Reservados todos los derechos.. Copie el nodo de contexto de componente FLIGHTTAB en el contexto de la vista OUTPUT_VIEW. a) 2. CONNID. PLANETYPE. 1. Tarea 2: Copie el nuevo nodo de contexto en el contexto de la vista OUTPUT_VIEW y asigne los nodos de contexto de los diferentes controladores. Realice este paso como en los ejercicios anteriores. En el contexto de componente.n. 1. a) Realice este paso como en los ejercicios anteriores. En el contexto de componente. SEATSMAX y SEATSOCC. Amplíe el layout de la vista para visualizar los datos de la tabla. Realice este paso como en los ejercicios anteriores.

En el controlador de componentes. Como no desea leer datos desde el contexto sino almacenar datos allí. Trate el método HANDLEFROM_INPUT_VIEW del controlador de vistas OUTPUT_VIEW y utilice el asistente de codificación de Web Dynpro para implementar una llamada del método de controlador de componentes. a) 4. a) 3. Llame el método BIND_TABLE del nodo de contexto FLIGHTTAB para almacenar el contenido de la tabla interna en el nodo de contexto. a) 2. elimine todas las llamadas de método creadas por el asistente a excepción de la primera (método GET_CHILD_NODE). seleccione la ficha Métodos. introduzca el nombre del método y haga doble clic. 379 . Realice este paso como en los ejercicios anteriores. 1. Consulte el código fuente de la solución modelo. Almacene el resultado en el nodo de contexto FLIGHTTAB. 1. Utilice CARRID y CONNID del nodo de contexto FLIGHTINFO para limitar la selección de datos. Reservados todos los derechos. a) Consulte el código fuente de la solución modelo. inmediatamente antes de que se visualice la vista de salida. Cree un método nuevo en el controlador de componentes (nombre propuesto: FLIGHTTAB_FILL). Tarea 4: Asegúrese de que su nuevo método de controlador de componentes se ejecuta después de la navegación.TAW12_2 Lección: Programación de contextos y controladores Tarea 3: Cree un método en el controlador de componentes en el que pueda seleccionar vuelos desde la tabla de base de datos SFLIGHT y almacenarlos en una tabla interna. Cree una tabla interna (nombre propuesto: IT_FLIGHTTAB) del tipo de tabla if_componentcontroller=>elements_flighttab. a) Abra el método HANDLEFROM_INPUT_VIEW. Continúa en la página siguiente 10-07-2009 © 2009 SAP AG. Consulte el código fuente de la solución modelo. Utilice el asistente de codificación de Web Dynpro para leer el nodo de contexto FLIGHTINFO. a) 5. Utilice el método estático CL_NET310_FLIGHTMODEL=>READ_FLIGHTS() para leer los datos. Utilice el método estático CL_NET310_FLIGHTMODEL=>READ_FLIGHTS() para rellenar la tabla interna (parámetro de exportación e_flights). Utilice el asistente de codificación de Web Dynpro para leer el nodo de contexto FLIGHTTAB después de llamar el método estático CL_NET310_FLIGHTMODEL=>READ_FLIGHTS().

Capítulo 11: Programación de contextos y controladores

TAW12_2

b)

Seleccione Asistente de codificación de Web Dynpro.

c)

Seleccione Llamada de método en controlador utilizado.

d)

Seleccione el controlador de componentes e introduzca el nombre
del método.

Resultado

Solución modelo:
FLIGTHTAB_FILL

NET310_CONR_S2, Método

METHOD flighttab_fill .

DATA:
node_flightinfo

TYPE REF TO if_wd_context_node,

elem_flightinfo

TYPE REF TO if_wd_context_element,

stru_flightinfo

TYPE

if_componentcontroller=>element_flightinfo.

* navigate from <CONTEXT> to <FLIGHTINFO> via lead selection
node_flightinfo = wd_context->get_child_node( name = ‘FLIGHTINFO‘ ).

* get element via lead selection
elem_flightinfo = node_flightinfo->get_element( ).

* get all declared attributes
elem_flightinfo->get_static_attributes(
IMPORTING
static_attributes = stru_flightinfo ).

DATA:
node_flighttab

TYPE REF TO if_wd_context_node,

it_flighttab

TYPE

if_componentcontroller=>elements_flighttab.

* read all flights related to CARRID and CONNID entered by user
* if carrid or/and connid are initial, all carriers/connection numbers
* are read
CALL METHOD cl_net310_flightmodel=>read_flights
EXPORTING
i_carrid

= stru_flightinfo-carrid

i_connid

= stru_flightinfo-connid

IMPORTING
e_flights = it_flighttab.

Continúa en la página siguiente

380

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2

Lección: Programación de contextos y controladores

* navigate from <CONTEXT> to <FLIGHTTAB> via lead selection
node_flighttab = wd_context->get_child_node( name = ‘FLIGHTTAB‘ ).

* bind table to context node <FLIGHTTAB>
CALL METHOD node_flighttab->bind_table
EXPORTING
new_items = it_flighttab.

ENDMETHOD.

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

381

Capítulo 11: Programación de contextos y controladores

382

© 2009 SAP AG. Reservados todos los derechos.

TAW12_2

10-07-2009

TAW12_2

345

Lección: Programación de contextos y controladores

Ejercicio 20: Contexto en tiempo de
ejecución: selección de liderazgo y
funciones de suministro
Duración del ejercicio: 30 Minutos

Objetivos de los ejercicios
Al finalizar este ejercicio podrá:

Utilizar funciones de suministro para completar los nodos de contexto con
datos.

Ejemplo empresarial
Desea desarrollar una aplicación Web Dynpro con una vista que visualice dos
tablas: una lista de vuelos y una lista de reservas. Los datos visualizados en
la segunda tabla deberán depender de la fila seleccionada en la primera tabla.
Desea utilizar una función de suministro para asegurarse de que los datos de la
segunda tabla se modificarán cuando el usuario seleccione una fila diferente en
la primera tabla.
Modelo: NET310_CONR_S2
Solución: NET310_CONR_S3

Tarea 1:
Copie su componente Web Dynpro ZNET310_CONR2_# o el modelo
NET310_CONR_S2 en el componente Web Dynpro ZNET310_CONR3_##.
En el contexto de componente, cree un nuevo nodo de contexto como subnodo
del nodo FLIGHTTAB para almacenar datos de un conjunto de reservas leídas
desde la tabla de base de datos SBOOK.
1.

Copie el modelo.

2.

En el contexto de componente, cree un subnodo del nodo de contexto
FLIGHTTAB (nombre propuesto: BOOKINGTAB) con referencia a la
estructura de Dictionary ABAP SBOOK y establezca la cardinalidad en 0...n.
El nodo deberá contener los siguientes atributos: BOOKID, CUSTOMID,
CUSTTYPE, LUGGWEIGHT, WUNIT, CLASS y PASSNAME.

Continúa en la página siguiente

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

383

Capítulo 11: Programación de contextos y controladores

TAW12_2

Tarea 2:
Asegúrese de que el nodo de contexto BOOKINGTAB también existe en la vista
OUTPUT_VIEW y de que este nodo está asignado al nodo BOOKINGTAB
del contexto de controlador de componentes. Amplíe el layout de la vista para
visualizar las reservas en una segunda tabla debajo de la tabla de vuelos.
1.

Actualice la asignación para el nodo de contexto FLIGHTTAB en el contexto
de vista OUTPUT_VIEW.
Consejo: Aquí debe utilizar las funciones de actualización. No es
posible asignar subnodos directamente arrastrándolos y soltándolos.

2.

Utilice el asistente de codificación de Web Dynpro para crear una
visualización de tabla con vinculación al nodo de contexto BOOKINGTAB.

Tarea 3:
Cree e implemente una función de suministro para completar el subnodo
BOOKINGTAB con datos de acuerdo con la selección de lead del nodo
FLIGHTTAB.
1.

En el contexto de componente, asigne una función de suministro al subnodo
BOOKINGTAB (nombre propuesto: BOOKINGS_READ) y créelo
utilizando la navegación hacia adelante.

2.

Quite los signos de comentario de la codificación generada (declaración de
datos y llamada de método BIND_TABLE para el subnodo BOOKINGTAB).

3.

Declare una estructura en la que los componentes se correspondan con los
atributos del nodo superior (nombre propuesto: STRU_FLIGHTTAB).
Consejo: Quizás desee copiar la declaración de este tipo de
estructura del método FLIGHTTAB_FILL.

4.

384

Utilice el método estático CL_NET310_FLIGHTMODEL=>READ_BOOKINGS() para completar la tabla
interna ITAB_BOOKINGTAB antes de vincularla al subnodo
BOOKINGTAB. Utilice los atributos CARRID, CONNID y FLDATE del
nodo superior para limitar la selección de datos.

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2

Lección: Programación de contextos y controladores

Solución 20: Contexto en tiempo de
ejecución: selección de liderazgo y
funciones de suministro
Tarea 1:
Copie su componente Web Dynpro ZNET310_CONR2_# o el modelo
NET310_CONR_S2 en el componente Web Dynpro ZNET310_CONR3_##.
En el contexto de componente, cree un nuevo nodo de contexto como subnodo
del nodo FLIGHTTAB para almacenar datos de un conjunto de reservas leídas
desde la tabla de base de datos SBOOK.
1.

Copie el modelo.
a)

2.

Realice este paso como en los ejercicios anteriores.

En el contexto de componente, cree un subnodo del nodo de contexto
FLIGHTTAB (nombre propuesto: BOOKINGTAB) con referencia a la
estructura de Dictionary ABAP SBOOK y establezca la cardinalidad en 0...n.
El nodo deberá contener los siguientes atributos: BOOKID, CUSTOMID,
CUSTTYPE, LUGGWEIGHT, WUNIT, CLASS y PASSNAME.
a)

Realice este paso como en los ejercicios anteriores.

Tarea 2:
Asegúrese de que el nodo de contexto BOOKINGTAB también existe en la vista
OUTPUT_VIEW y de que este nodo está asignado al nodo BOOKINGTAB
del contexto de controlador de componentes. Amplíe el layout de la vista para
visualizar las reservas en una segunda tabla debajo de la tabla de vuelos.
1.

Actualice la asignación para el nodo de contexto FLIGHTTAB en el contexto
de vista OUTPUT_VIEW.
Consejo: Aquí debe utilizar las funciones de actualización. No es
posible asignar subnodos directamente arrastrándolos y soltándolos.

2.

a)

Abra el menú contextual del nodo de contexto FLIGHTTAB y
seleccione Actualizar asignación.

b)

Confirme los dos cuadros de diálogo siguientes seleccionando Sí.

Utilice el asistente de codificación de Web Dynpro para crear una
visualización de tabla con vinculación al nodo de contexto BOOKINGTAB.
a)

Realice este paso como en los ejercicios anteriores.
Continúa en la página siguiente

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

385

Capítulo 11: Programación de contextos y controladores

TAW12_2

Tarea 3:
Cree e implemente una función de suministro para completar el subnodo
BOOKINGTAB con datos de acuerdo con la selección de lead del nodo
FLIGHTTAB.
1.

2.

En el contexto de componente, asigne una función de suministro al subnodo
BOOKINGTAB (nombre propuesto: BOOKINGS_READ) y créelo
utilizando la navegación hacia adelante.
a)

En el contexto de componente, haga doble clic en el subnodo.

b)

Introduzca el nombre de la función de suministro como atributo de
propiedad Función de suministro y haga doble clic en el nombre.

Quite los signos de comentario de la codificación generada (declaración de
datos y llamada de método BIND_TABLE para el subnodo BOOKINGTAB).
a)

3.

Consulte el código fuente de la solución modelo.

Declare una estructura en la que los componentes se correspondan con los
atributos del nodo superior (nombre propuesto: STRU_FLIGHTTAB).
Consejo: Quizás desee copiar la declaración de este tipo de
estructura del método FLIGHTTAB_FILL.
a)

4.

Consulte el código fuente de la solución modelo.

Utilice el método estático CL_NET310_FLIGHTMODEL=>READ_BOOKINGS() para completar la tabla
interna ITAB_BOOKINGTAB antes de vincularla al subnodo
BOOKINGTAB. Utilice los atributos CARRID, CONNID y FLDATE del
nodo superior para limitar la selección de datos.
a)

Consulte el código fuente de la solución modelo.

Resultado

Solución modelo:
BOOKINGS_READ

NET310_CONR_S3, Método

METHOD bookings_read .
* General Notes
* =============
* A common scenario for a supply method is to aquire key
* informations from the parameter <parent_element> and then
* to invoke a data provider.
* A free navigation thru the context, especially to nodes on

Continúa en la página siguiente

386

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2

Lección: Programación de contextos y controladores

* the same or deeper hierachical level is strongly discouraged,
* because such a strategy may easily lead to unresolvable
* situations!!
*
* data declaration
DATA:
itab_bookingtab

TYPE if_componentcontroller=>elements_bookingtab.

DATA:
stru_flighttab

TYPE

if_componentcontroller=>element_flighttab.

* get all declared attributes
parent_element->get_static_attributes(
IMPORTING
static_attributes = stru_flighttab ).

* read bookings related to selected flight
CALL METHOD cl_net310_flightmodel=>read_bookings
EXPORTING
i_carrid

= stru_flighttab-carrid

i_connid

= stru_flighttab-connid

i_fldate

= stru_flighttab-fldate

IMPORTING
e_bookings = itab_bookingtab.

* bind all the elements
node->bind_table(
new_items =

itab_bookingtab

set_initial_elements = abap_true ).

ENDMETHOD.

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

387

Capítulo 11: Programación de contextos y controladores

TAW12_2

Resumen de la lección
Ahora podrá:

Enumerar los métodos de conexión que existen para los diferentes tipos
de controlador.

Explicar en qué orden se procesan estos métodos de conexión.

Crear y llamar sus propios métodos de controlador.

Utilizar los atributos de controlador estándar para acceder a las funciones de
controlador, en especial el contexto de controlador.

Definir sus propios atributos de controlador y usarlos en los métodos de
controlador.

Acceder al contexto de controlador y leer, borrar, modificar o añadir
elementos de la serie.

388

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

TAW12_2

Resumen del capítulo

Resumen del capítulo
Ahora podrá:

Enumerar los métodos de conexión que existen para los diferentes tipos
de controlador.

Explicar en qué orden se procesan estos métodos de conexión.

Crear y llamar sus propios métodos de controlador.

Utilizar los atributos de controlador estándar para acceder a las funciones de
controlador, en especial el contexto de controlador.

Definir sus propios atributos de controlador y usarlos en los métodos de
controlador.

Acceder al contexto de controlador y leer, borrar, modificar o añadir
elementos de la serie.

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

389

Resumen del capítulo

390

TAW12_2

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

Capítulo 12
Internacionalización y mensajes

353

Demos are available for all aspects explained in this unit.

Resumen del capítulo
Es necesario internacionalizar las aplicaciones Web Dynpro para poder ofrecer la
aplicación en varios idiomas de destino. Cada texto (por ejemplo, definido como
una propiedad de elemento de UI o texto literal en el código fuente) puede definirse
de forma que se pueda traducir. Esto también puede aplicarse a textos utilizados
como mensajes en la pantalla del cliente. Esta unidad se centra en cómo definir los
textos y mensajes traducibles, así como en el modo de enviar los mensajes.

Objetivos del capítulo
Al finalizar este capítulo podrá:




Definir textos traducibles en el OTR o como elementos de texto en una
clase ABAP.
Utilizar textos OTR y elementos de texto de las clases ABAP para definir
literales traducibles en el entorno Web Dynpro.
Notificar mensajes basados en textos T100, textos OTR y elementos de
textos de clases ABAP.
Notificar mensajes con y sin conexiones a elementos de UI.
Definir dónde se deberán visualizar los mensajes en la pantalla.

Contenido del capítulo
Lección: Internacionalización y mensajes ...................................392
Ejercicio 21: Internacionalización: texto traducible en la UI ..........405

10-07-2009

© 2009 SAP AG. Reservados todos los derechos.

391

Capítulo 12: Internacionalización y mensajes

Lección:
354

TAW12_2

Internacionalización y mensajes
Duración de la lección: 70 Minutos

Resumen de la lección
Ofrecer una aplicación Web Dynpro en diversos idiomas requiere la definición
de todos los literales utilizados en la aplicación para que se puedan traducir. A
continuación, el literal se puede cargar en tiempo de ejecución en el idioma de
trabajo pertinente.
Existen varias maneras de hacer traducibles los literales. El texto se puede definir
en el Online Text Repository (OTR) como un elemento de texto en una clase
ABAP o en el Dictionary ABAP. En esta lección se tratarán todas las técnicas.
Al hablar de textos traducibles, los mensajes también se tienen que tener en
cuenta. Cada texto definido en el OTR, en la tabla de base de datos T100 o como
un elemento de texto en una clase ABAP puede ser enviado como mensaje. Esta
lección tratará con detalle qué tipo de mensajes existen y cómo pueden enviarse
dichos mensajes.

Objetivos de la lección
Al finalizar esta lección podrá:




Definir textos traducibles en el OTR o como elementos de texto en una
clase ABAP.
Utilizar textos OTR y elementos de texto de las clases ABAP para definir
literales traducibles en el entorno Web Dynpro.
Notificar mensajes basados en textos T100, textos OTR y elementos de
textos de clases ABAP.
Notificar mensajes con y sin conexiones a elementos de UI.
Definir dónde se deberán visualizar los mensajes en la pantalla.

Use the demos from the package NET310 to explain the content.

Ejemplo empresarial
Ha creado una aplicación Web Dynpro. No obstante, si el usuario proporciona
valores de campo incorrectos, su aplicación se bloquea o no funciona
correctamente. Desea verificar la entrada del usuario e informarle mediante la
visualización de mensajes. Estos mensajes y todos los textos visualizados por el
usuario deberán ser traducibles, ya que su aplicación se debe ofrecer en diversos
idiomas.

392

© 2009 SAP AG. Reservados todos los derechos.

10-07-2009

Internacionalización La internacionalización significa que deben definirse todas las partes dependientes de idiomas de las aplicaciones para que pueda definirse una versión específica del idioma de la entidad y se utilice la versión correcta en tiempo de ejecución según el idioma utilizado por el usuario para iniciar la sesión. to find out how assistance class texts can be accessed. Es decir. y olvídese de las otras 18 letras que hay en medio. 393 . constants. Gráfico 211: Internacionalización Nota: Puesto que internacionalización es una palabra demasiado larga. la primera letra I. 10-07-2009 © 2009 SAP AG. Demonstrate how to use texts from the ABAP Dictionary as well. Analyze the coding of the DOINIT method of the view.TAW12_2 Lección: Internacionalización y mensajes The demo NET310_I18N_D1 can be used for all the techniques to define translatable texts. However. and an alias for the interface method get_text() by yourself. It is also better to define your own assistance class. text symbols. a menudo se abrevia como I18N. it is more instructive if you create and use your own OTR texts in your component. Reservados todos los derechos. la última letra N.

a su vez. Desde el código fuente. medio o largo). 10-07-2009 . el texto de elemento de datos correspondiente (texto medio) se utiliza automáticamente como texto de etiqueta. Este elemento de UI relacionado. textos quick info. En la ventana de diálogo que aparece.Capítulo 12: Internacionalización y mensajes TAW12_2 Las entidades dependientes de idioma incluyen textos de etiqueta. textos de mensaje e imágenes. seleccione el pulsador Asociación DDIC on/off para seleccionar un tipo de DDIC y el tipo de texto (breve. se debe seleccionar el pulsador situado a la derecha de un campo de valor de propiedades. se puede utilizar el método get_available_texts( ) de la clase CL_TEXT_IDENTIFIER para leer textos desde el Dictionary ABAP. El mismo mecanismo se aplica a los Caption de TableColumns. Utilización de textos definidos en Dictionary ABAP Gráfico 212: Referencia a textos de Dictionary ABAP Los textos definidos en Dictionary ABAP se pueden utilizar de las siguientes maneras: • El elemento de UI Label pertenece a un elemento de UI que permite entradas de usuario (por ejemplo InputField). textos de pulsador. Si el atributo de contexto tiene un tipo de Dictionary ABAP. © 2009 SAP AG. debe estar vinculado a un atributo de contexto de la propiedad que incluye el valor de campo. Para ello. • • 394 También se puede hacer referencia a cada texto de elemento de datos directamente. Reservados todos los derechos.

sino también en BSP.TAW12_2 Lección: Internacionalización y mensajes Your component: Bind some dictionary texts to text properties of some UI elements of your views (for example. Label texts). sólo se deberán utilizar textos OTR cortos. No obstante. OTR proporciona servicios para acceder a estos textos en tiempo de ejecución y admite la entrada y la traducción de textos. el inconveniente es que sólo se pueden utilizar una vez. estos textos se pueden reutilizar y sólo hay que traducirlos una vez. que contiene textos estándar. Para crear un nuevo texto OTR corto. 10-07-2009 © 2009 SAP AG. los textos largos OTR se crean automáticamente cuando se introduce un texto en un campo de valor de una propiedad del elemento de UI. realice los siguientes pasos: • • • Seleccione el pulsador de Ayuda para entradas en el campo de valor Propiedades. debe volver a escribirse en el idioma original y. Sin embargo. La directiva OTR es una combinación del nombre alias del texto. Los textos OTR cortos tienen un límite de 255 caracteres. Puede encontrar esta herramienta en el menú Pasar a al tratar una vista. Definición y utilización de textos Online Text Repository (OTR) El Online Text Repository (OTR) es un área de almacenamiento central para textos que se puede utilizar no sólo en un contexto Web Dynpro. El nombre de un texto OTR breve está formado por el nombre del paquete seguido de una barra diagonal y un identificador arbitrario (<paquete>/<alias>). Si desea utilizar el mismo texto largo por segunda vez. Para utilizar un texto OTR breve como valor de una propiedad de elemento de UI. Reservados todos los derechos. Seleccione un texto de la lista y seleccione Continuar. el nombre del paquete y el prefijo OTR: $OTR:<paquete>/<alias>. Se pueden definir diversos tipos de textos en OTR: Textos OTR largos. debe traducirse otra vez. en clases y en programas ABAP normales (tipo 1/tipo M). Los textos OTR también pueden se pueden crear mediante la transacción SOTR_EDIT. En el contexto Web Dynpro. traducir textos y encontrar dónde se utilizan los textos OTR. La longitud de los textos OTR largos es ilimitada. breves o textos de alias. se puede utilizar el browser de Online Text Repository. En el contexto Web Dynpro. La directiva OTR para la utilización de este texto se introduce automáticamente en el campo de valor Propiedades. Aparecerá el browser de OTR visualizando todos los textos de su paquete y del paquete SOTR_VOCABULARY_BASIC. Esta transacción también le permite buscar textos existentes. lo que es peor. 395 .

La clase CL_WD_UTILITIES proporciona los métodos de servicio apropiados. El método get_otr_text_by_alias( ) le permite acceder al valor de un texto breve OTR dependiente de idioma proporcionando el alias. 10-07-2009 . 396 © 2009 SAP AG. El valor devuelto es del tipo string. Reservados todos los derechos.Capítulo 12: Internacionalización y mensajes TAW12_2 Gráfico 213: Utilización de textos OTR breves como valores de propiedades de elemento de UI También se puede acceder a los textos OTR breves desde el código fuente de un controlador.

0 hay disponible una clase que ofrece métodos para leer los elementos de texto. Se llama CL_WD_COMPONENT_ASSISTANCE. 397 . use un método público de la clase. debe estar instanciada en cada controlador. create some OTR texts using the OTR Browser from the menu. Navegar a la ficha Propiedades del componente. se creará. © 2009 SAP AG. Reservados todos los derechos. Esto se realiza escribiendo el nombre de clase en el campo Clase de asistencia que se puede encontrar en la ficha Propiedades del componente Web Dynpro. Utilización de textos definidos en una clase ABAP En vez de utilizar textos definidos en el OTR. La clase se deriva de la clase superior CL_WD_COMPONENT_ASSISTANCE. se devuelve el texto en el idioma sy-langu. Then restart the ABAP Workbench (because it contains bugs) before you access the texts. Los pasos son: • • • 10-07-2009 Editar el componente Web Dynpro. En cada SAP NetWeaver AS 7. Para utilizar esta clase en un componente Web Dynpro.TAW12_2 Lección: Internacionalización y mensajes Gráfico 214: Utilización de textos OTR breves desde el código fuente del controlador Your component: First. se puede definir los textos como elementos de texto en una clase ABAP. Si la clase no existe. Cada clase que hereda de su clase superior tendrá el método get_text( ). Para acceder a los valores de elemento de texto. Hacer doble clic en el nombre de clase. No obstante. una manera más fácil y coherente es dejar que el tiempo de ejecución de Web Dynpro cree la instancia sólo una vez. Si se pasa el identificador del símbolo de texto al método. use the input help for the value fields. Introducir un nombre de clase en el campo Clase de asistencia. Finally. to assign UI element properties to your OTR texts.

• • Opcionalmente. 398 © 2009 SAP AG. Si desea hacer referencia a los elementos de texto mediante identificadores arbitrarios. lv_text = wd_assist->if_wd_component_assistance~get_text( key = wd_assist->carrid ). se añade un atributo (WD_ASSIST) a la lista de atributos de cada controlador. se puede acceder a un texto de la siguiente manera: • Mediante el identificador de elemento de texto CAR: DATA: lv_text TYPE string. puede definir un alias público para el método de interfaz get_text( ) (sólo por comodidad). 10-07-2009 . El valor de constante equivale al identificador de elemento de texto entre comillas. Mediante WD_ASSIST. puede definir constantes de tipo WDR_TEXT_KEY para cada elemento de texto. El tiempo de ejecución de Web Dynpro establece este atributo para la instancia de clase de asistencia. lv_text = wd_assist->if_wd_component_assistance~get_text( key = ’CAR’ ).Capítulo 12: Internacionalización y mensajes TAW12_2 Gráfico 215: Utilización de la clase de asistencia de componente Se pueden añadir símbolos de texto a la clase seleccionando Pasar a → Símbolos de texto. Reservados todos los derechos. • Mediante una constante CARRID con el identificador de elemento de texto CAR como su valor: DATA: lv_text TYPE string. Asegúrese de que la longitud de los elementos de texto es suficientemente larga para soportar diferentes idiomas. Una vez asignada la clase de asistencia al componente.

Use the alias or complete interface method name.TAW12_2 Lección: Internacionalización y mensajes Your component: Create an assistance class. For the method with the placeholders. El método get_text( ) le permite exportar valores para los marcadores de posición. Define a text symbol without any placeholder and another text symbol with one or more placeholders (names: &PARA1&.. hand over literals to replace the placeholders. Éste devuelve el texto correspondiente en el idioma de trabajo. el texto se devuelve como se ha definido.). Si el texto se obtiene sin proporcionar valores para los marcadores de posición.. From any method of any controller of your component: Use the ABAP Code Wizard. Atención: El método get_text( ) sólo sustituye un máximo de cuatro marcadores de posición con los nombres (incluido el signo & inicial) &PARA1& . Los textos definidos en la clase de asistencia también pueden tener marcador de posición. Aquí.. Exercise “Translatable Texts in the UI” 10-07-2009 © 2009 SAP AG. Use the text symbol’s identifier (literal) or the class constant to access the text symbol. Not shown here: You can translate the OTR texts or the text symbols in the SE63 if you would like to show that. si el texto se utiliza como texto de un mensaje). .. Por lo general. 399 . no existen restricciones en cuanto al número y los nombres de los reserva-espacios. Define class constants with better names. Execute debugging. &PARA4&. Éstos se definen mediante la utilización del signo & seguido del nombre del marcador de posición. Los marcadores de posición podrán sustituirse más adelante por otro algoritmo (por ejemplo. to generate the method call of the get_text() method. los nombres de marcadores de posición se deben definir en letras mayúsculas. Define an alias get_text for the interface method if_wd_component_assistance~get_text(). con el marcador de posición sustituido por los valores proporcionados. Reservados todos los derechos.

Restrict your discussion to the general code first.Capítulo 12: Internacionalización y mensajes TAW12_2 Notificación de mensajes El código fuente para notificar mensajes se puede generar mediante el asistente de codificación Web Dynpro. Gráfico 216: Notificación de un mensaje: Parte común Your component: Report any message using the WD Code Wizard. la lista de parámetros deberá definirse antes de llamar al método. 10-07-2009 . el código fuente correspondiente deberá moverse al método de conexión estándar wddoinit() y la referencia se deberá almacenar + en un atributo de controlador definido por el usuario. Como la obtención de la referencia al gestor de mensajes es obligatoria antes de poder notificar un mensaje. Los marcadores de 400 © 2009 SAP AG. El código generado consta de una parte común. Categoría TEXT Todos los métodos de notificación de mensajes de la categoría TEXT tienen una interfase común. El gestor de mensajes es responsable de recopilar y enviar los mensajes notificados en el componente real y en todos los subcomponentes. así como una parte dependiente del método al que se debe llamar. Reservados todos los derechos. Debe exportarse al menos el texto de mensaje mediante el parámetro message_text. Si el texto de mensaje incluye marcadores de posición. que incluye el código fuente para obtener la referencia al gestor de mensajes.

Como este atributo está vinculado a la propiedad de un elemento de UI. and success messages are reported. el tiempo de ejecución de Web Dynpro puede relacionar el mensaje con este elemento de UI. Gráfico 217: Ejemplo: Notificación de mensajes: Categoría TEXT You can show all kinds of TEXT messages using demo NET310_I18N_D3. 10-07-2009 © 2009 SAP AG. todos los componentes de mensaje se exportan mediante parámetros de punto de código o mediante una estructura de exportación. X1). Categoría T100 Para usar textos ya definidos en la tabla de base de datos T100 existen dos métodos. la clase de mensaje y el tipo de mensaje. Error messages. el texto del mensaje se debe exportar mediante el parámetro message_text. some have placeholders.TAW12_2 Lección: Internacionalización y mensajes posición de los textos de mensaje pueden tener nombres arbitrarios (en el siguiente ejemplo. Si un método de categoría TEXT pertenece a un elemento de UI. deberá proporcionarse una referencia al elemento de contexto y el nombre del atributo de este elemento de contexto con el valor erróneo. Como mínimo. Reservados todos los derechos. Si el texto de mensaje incluye marcadores de posición. 401 . Debe introducir el número de mensaje. se pueden exportar los valores apropiados. warnings. Some of them are related to context attributes. Discuss in detail. En función del método.

deberá proporcionarse una referencia al elemento de contexto y el nombre del atributo de este elemento de contexto con el valor erróneo. el tiempo de ejecución Web Dynpro puede relacionar a continuación el mensaje con este elemento de UI. no se puede modificar. Si un método de la categoría EXCEPTIONS pertenece a un elemento de UI. 10-07-2009 . Categoría EXCEPTIONS Se pueden interceptar excepciones en tiempo de ejecución en un objeto de excepción. 402 © 2009 SAP AG. Este texto se define en la clase de excepción y. Como este atributo está asociado a la propiedad de un elemento de UI. Gráfico 218: Notificación de mensajes: Categoría T100 Demo NET310_I18N_D2 shows all kinds of T100 messages. El objeto de mensaje se exporta mediante el parámetro message_object. el tiempo de ejecución de Web Dynpro puede relacionar a continuación el mensaje con este elemento de UI. por lo tanto. El objeto de mensaje se puede utilizar para crear un mensaje Web Dynpro mediante la llamada a métodos de la categoría EXCEPTIONS. que en tal caso incluirá el texto del error. Reservados todos los derechos.Capítulo 12: Internacionalización y mensajes TAW12_2 Si un método de la categoría T100 pertenece a un elemento de UI. se deberá proporcionar una referencia al elemento de contexto y el nombre del atributo de este elemento de contexto con el valor erróneo. Como este atributo está vinculado a la propiedad de un elemento de UI. Discuss in detail.

si existen varios métodos de controlador de acciones.TAW12_2 Lección: Internacionalización y mensajes Gráfico 219: Notificación de mensajes: Categoría EXCEPTIONS Demo NET310_I18N_D4 shows how to report an exception message. Por esta razón. Discuss in detail. No obstante. existe un método de conexión especial para cada vista que se procesa antes de que se llame cualquiera de los métodos de controlador de acciones. 403 . Codificación para notificar mensajes Si la codificación de validación sólo se debe realizar para una acción de usuario específica. entonces todos los métodos wddobeforeaction( ) se procesarán antes de que se llame a ningún método de controlador de acciones. Si una pantalla está formada por varias vistas (vistas anidadas). se deberán realizar validaciones en más de un método de controlador de acciones. En este caso. El nombre de este método de conexión es wddobeforeaction( ). Reservados todos los derechos. 10-07-2009 © 2009 SAP AG. se puede colocar en el método de controlador de acciones correspondiente (onaction<acción>). es buena idea poner la codificación en un método adicional para tenerlo escrito sólo una vez.

los mensajes notificados en wddobeforeaction( ) NO influirán en el procesamiento de los métodos de conexión ni en la navegación. Reservados todos los derechos. 10-07-2009 . Exercise “Value Checks and Messages” 404 © 2009 SAP AG. los tipos de mensaje siguientes cancelarán la navegación y evitarán el procesamiento del método de controlador de acciones y el método de conexión wddomofifyview( ): Mensajes de error graves Mensajes de error relacionados con atributos de contexto La notificación de mensajes en el método de controlador de acciones no influye en la navegación ni en el procesamiento de los métodos de conexión. Si la acción depende de la validación (tipo de acción = estándar).Capítulo 12: Internacionalización y mensajes TAW12_2 Gráfico 220: Notificación de mensajes: Método de conexión WDDOBEFOREACTION() Procesamiento dependiente de la validación El procesamiento de los métodos de conexión de vista y la navegación podrían depender del tipo de acción desencadenada y del tipo de los mensajes notificados en el método de conexión wddobeforeaction( ): Si la acción no depende de la validación (tipo de acción = independiente de validación).

Utilice textos OTR para títulos de grupo y textos de botón. 2. Para aquellos textos que no se recuperan desde el Dictionary ABAP. Copie el modelo. 3.TAW12_2 367 Lección: Internacionalización y mensajes Ejercicio 21: Internacionalización: texto traducible en la UI Duración del ejercicio: 10 Minutos Objetivos de los ejercicios Al finalizar este ejercicio podrá: • Crear textos OTR. © 2009 SAP AG. Ejemplo empresarial Desea desarrollar una aplicación Web Dynpro en la que todos los textos de UI se puedan traducir. establezca la propiedad text con referencia a un texto OTR. 405 . Reservados todos los derechos. Modelo: NET310_CONR_S3 Solución: NET310_I18N_S1 Tarea: Copie su componente Web Dynpro ZNET310_CONR3_## o el modelo NET310_CONR_S3 en el componente Web Dynpro ZNET310_I18N1_##. va a utilizar OTR. 10-07-2009 1. Cree los textos OTR requeridos en su paquete (los identificadores empiezan por ZNET310_##/). • Usar textos OTR para elementos de UI. Para todos los elementos de UI de tipo GROUP o BUTTON.

1.Capítulo 12: Internacionalización y mensajes TAW12_2 Solución 21: Internacionalización: texto traducible en la UI Tarea: Copie su componente Web Dynpro ZNET310_CONR3_## o el modelo NET310_CONR_S3 en el componente Web Dynpro ZNET310_I18N1_##. 406 Realice este paso como en los ejercicios anteriores. la longitud y el texto. 3. b) Seleccione Crear c) Introduzca el identificador. establezca la propiedad text con referencia a un texto OTR. . a) Seleccione Pasar a → Browser de Online Text Repository. Copie el modelo. Cree los textos OTR requeridos en su paquete (los identificadores empiezan por ZNET310_##/). Reservados todos los derechos. a) 2. Seleccione Grabar . 10-07-2009 . © 2009 SAP AG. a) Trate el elemento de UI respectivo y abra la Ayuda para entradas de la propiedad text. Utilice textos OTR para títulos de grupo y textos de botón. Para todos los elementos de UI de tipo GROUP o BUTTON. b) Haga doble clic en el texto OTR correspondiente de la lista.

• Notificar mensajes basados en textos T100. Reservados todos los derechos. • Definir dónde se deberán visualizar los mensajes en la pantalla. 10-07-2009 © 2009 SAP AG. • Notificar mensajes con y sin conexiones a elementos de UI. • Utilizar textos OTR y elementos de texto de las clases ABAP para definir literales traducibles en el entorno Web Dynpro. textos OTR y elementos de textos de clases ABAP. 407 .TAW12_2 Lección: Internacionalización y mensajes Resumen de la lección Ahora podrá: • Definir textos traducibles en el OTR o como elementos de texto en una clase ABAP.

• Notificar mensajes con y sin conexiones a elementos de UI. • Utilizar textos OTR y elementos de texto de las clases ABAP para definir literales traducibles en el entorno Web Dynpro. Reservados todos los derechos.Resumen del capítulo TAW12_2 Resumen del capítulo Ahora podrá: • Definir textos traducibles en el OTR o como elementos de texto en una clase ABAP. • Definir dónde se deberán visualizar los mensajes en la pantalla. 10-07-2009 . 408 © 2009 SAP AG. textos OTR y elementos de textos de clases ABAP. • Notificar mensajes basados en textos T100.

TAW12_2 Resumen del curso Resumen del curso Ahora podrá: • • • • • • • • • • • • • • • • Utilizar elementos fundamentales de la modelación orientada a objetos en UML Crear programas de objetos ABAP que contengan todas las técnicas de programación útiles orientadas a objetos Utilizar las herramientas relevantes para crear objetos de Repository orientados a objetos Describir y aprovechar el rango de aplicaciones de objetos ABAP Definir. 409 . emitir y tratar excepciones basadas en clases Consultar atributos de tipo y de clase en el tiempo de ejecución Realizar modificaciones especializadas en la versión estándar del sistema SAP Evaluar los distintos métodos de modificación y elegir el adecuado en cada caso Explicar la arquitectura de un componente Web Dynpro Describir las partes de un controlador Web Dynpro Crear elementos de contexto en controladores Web Dynpro Explicar cómo se puede implementar la navegación y las transferencias de datos en componentes Web Dynpro y entre ellos Definir la interfase de usuario de un componente Web Dynpro Internacionalizar una aplicación Web Dynpro Definir y enviar mensajes en un componente Web Dynpro Definir la ayuda para entradas y la ayuda semántica para elementos de UI en un componente Web Dynpro Más información • 10-07-2009 Use un URL o una etiqueta de referencia cruzada para destacar información adicional que pueda resultar útil a los participantes. Bórrelos si son irrelevantes. Reservados todos los derechos. © 2009 SAP AG. como sitios Web o White Papers.

Resumen del curso 410 TAW12_2 © 2009 SAP AG. Reservados todos los derechos. 10-07-2009 .

366 cardinalidad de la serie. 292 asociar estructura a nodo. 283 selección de lead. 249 arquitectura del componente reutilización. 286 tener acceso a atributos. 236 atributos. 360 nodos dependientes. 354 duración. 264 entidades de controlador personalizados. 238 atributos WD_COMP_CONTROLLER. 237. 239 asignación interna. 353 atributos estándar. 411 . 362 asignación de contextos. 365 añadir elementos. 357 controlador. 284 nodos independientes. 352 WD_THIS. 283 crear elemento de nodo. 352 WD_CONTEXT. 355 acceso en tiempo de ejecución. 248 visibilidad de entidades. 199 aplicación. 202 BAdI dependientes de filtro. 245 asignación de contextos. 266 entidades de controlador de vistas. 352 contexto. 263 métodos. 351 atributos definidos por el usuario. Reservados todos los derechos. 362 eliminar elemento de nodo. 292 asignación externa. 259 controlador de vistas © 2009 SAP AG. 284 propiedad singleton. 260 entidades. 346 métodos de conexión. 287 propiedades de elementos. 244 contexto. 260 entidades de controlador de componentes. 352 B BAdI. 195 conjunto de vistas. 367 función de suministro. 354 añadir elemento de nodo. 280 acceso a un nodo. 366 10-07-2009 asociar tabla interna a nodo. 236 concepto de ampliación. 350 tipos.Índice A ampliación de interfase. 283 componente. 346 métodos de instancia. 208 C cardinalidad de la serie. 288 modificar atributos. 263 entidades de controlador de ventanas. 236.

319 vinculación de datos. 321 elementos de UI. 312 controlar comportamiento. 321 gestores de layout. 236 ventana. 322 elementos de container. 319 textos del Dictionary ABAP. 393 textos de clase de asistencia. 241 navegaciónlenlaces.Índice TAW12_2 Editor de vistas. 236 F función de suministro. 400 metamodelo. 200 método de sobrescritura. 348 Model View Controller (MVC). 200 métodos de conexión wddobeforeaction(). 242 vista. 196 selección de lead. 233 método anterior. 264 puntos de navegación de entrada. 245 . 241 puntos de navegación de salida. 265 Entidades Web Dynpro aplicación. Reservados todos los derechos. 314 enlace de navegación. 236. 242 O Online Text Repository (OTR). 307 elementos de UI compuestos. 317 definición. 241 Puntos de navegación. 196–197 puntos de navegación de entrada. 236 controlador. 199 punto de ampliación. 395 . 288 funciones empresariales. 206 I internacionalización. 349 wddopostprocessing(). 241 de salida. 236 contexto. 394 Textos OTR. 242 puntos de navegación de entrada. 312 elemento de UI. 209 G GET BADI. 348 wddomodifyview(). 10-07-2009 . 307 página de test. 305 elemento de UI compuestos. 241 puntos de navegación de salida. 312 E Editor de vistas. véase Online Text Repository (OTR) . 249 componente. 200 método posterior. véase internacionalización 412 M mensajes notificación. 241 S sección de ampliación. 286 SFW1. 349 wddobeforenavigation(). 210 © 2009 SAP AG. 397 textos del Dictionary ABAP. 395 P plug-in de código fuente. véase Model View Controller (MVC) N navegación enlaces.

TAW12_2 Índice SFW5. 413 . 235 V ventana. 209 vinculación de datos. 236. 209 Switch Framework. 236 T W textos de clase de asistencia. 314 vista. 242 10-07-2009 © 2009 SAP AG. 397 Web Dynpro resumen. Reservados todos los derechos. 237. 232 ventajas.

Reservados todos los derechos. 10-07-2009 .Índice 414 TAW12_2 © 2009 SAP AG.

Feedback SAP AG ha tomado todas las medidas posibles en la preparación de este curso para asegurar la exactitud de los contenidos del mismo así como que esté completo. 10-07-2009 © 2009 SAP AG. Si tiene algunas correcciones o sugerencias para mejorarlo. 415 . Reservados todos los derechos. anótelas en los espacios previstos para este fin en la evaluación del curso.