Академический Документы
Профессиональный Документы
Культура Документы
Copyright
Copyright 2005 SAP ESPAA. Reservados todos los derechos. Prohibida la distribucin, reproduccin o traduccin de este manual o de parte del mismo, sea cual sea el fin y la forma, sin la autorizacin expresa por escrito de SAP ESPAA. La informacin contenida en este manual puede modificarse o complementarse sin previo aviso. Reservados todos los derechos.
ABAP Unit
Checkpoints/Assertions
Shared Objects
Memory Inspector
Simple Transformations
Y ms all de 6.40
Objetivos de la presentacin
Una vez terminada esta presentacin, podr: Conocer las nuevas caractersticas presentes en ABAP 6.40 Saber cundo poder usarlas Saber los problemas de programacin que solucionan Saber cmo integrar las mejoras ABAP en sus programas
Antes de empezar
Requisitos previos:
Programacin ABAP en general ABAP Objects
A quien va dirigida:
Programadores ABAP Administradores de sistema SAP WAS
ABAP Unit
ABAP Unit
ABAP Unit
Qu es ABAP Unit? ABAP Unit es el mecanismo con el que podemos implementar tests unitarios o de mdulos en ABAP
Qu es un test unitario (Unit Test)? En programacin, un test unitario es un test que valida el funcionamiento correcto de una porcin de cdigo
ABAP Unit
Qu es una unidad (Unit)? Una unidad es una porcin de cdigo no trivial (por ejemplo un mtodo, una funcin o un form) donde una entrada dada produce un efecto verificable. Idealmente, es la parte ms pequea de cdigo que puede ser verificada aisladamente. Cmo se programa un test ABAP Unit? Estos tests se implementan como una clase local ABAP definida como FOR TESTING. Esta clase local ha de formar parte de la clase, grupo de funciones o programa que se quiere verificar.
ABAP Unit
Por qu los ABAP Unit forman parte del cdigo ABAP? Los Unit tests estn sincronizados con el cdigo que validan. Los Unit tests no forman parte del programa que se transporta a produccin, por tanto no producen prdidas de rendimiento. Qu servicios provee ABAP Unit? ABAP Unit ofrece una clase de servicio, CL_AUNIT_ASSERT, que contiene mtodos estticos para comparar datos que validen el test definido.
ABAP Unit
Assertions/Breakpoint groups
Assertions/Breakpoint groups
Assertions/Breakpoint groups
Assertions
Son condiciones lgicas insertadas en el cdigo que validan situaciones diseadas para ser siempre ciertas. Si se produce el caso de que no son ciertas, el programa se detiene para que se pueda realizar un anlisis.
Assertions/Breakpoint groups
Sentencia ASSERT
Las aserciones se insertan en el cdigo a travs de la sentencia ABAP ASSERT:
ASSERT [ID group [SUBKEY sub] [FIELDS dobj1 dobj2 ...] CONDITION] log_exp.
Assertions/Breakpoint groups
Breakpoint groups
Si no se cumple la condicin, las aserciones generan un dump salvo que se asignen a un grupo de breakpoints con el modificador ID. Un grupo de breakpoints se utiliza para identificar un conjunto de breakpoints. El debugger solo se detendr en esos puntos cuando no se haya cumplido la condicin que verifica el ASSERT. Los Breakpoints Groups se mantienen en la transaccin SAAB.
Assertions/Breakpoint groups
Shared Objects
Shared Objects
Shared Objects
Shared Objects
Es una nueva clase de objetos ABAP que tienen la caracterstica de que se mantienen en la memoria compartida. Los objetos compartidos suponen un nuevo mecanismo para compartir informacin entre diferentes sesiones en el entorno ABAP.
Shared Objects
Precedentes
Los mecanismos que anteriormente permitan compartir datos entre sesiones son: EXPORT TO SHARED BUFFER EXPORT TO SHARED MEMORY Pero estn limitados a tipos de datos ABAP simples: tablas, estucturas y campos. Y no se permite acceso compartido a estos datos: los programas deben copiar los datos en su propia roll area para poder trabajar con ellos.
Shared Objects
Objetos compartidos
Para superar las limitaciones de los mecanismos anteriores, en ABAP 6.40 se introducen los objetos compartidos. Con los objetos compartidos se consigue: Reducir operaciones de copia de datos: se accede directamente a los objetos en memoria compartida. Se evitan inconsistencias de datos. Mejora de rendimiento al evitar accesos repetidos a base de datos.
Shared Objects
Cmo utilizarlos
Se crea una zona especial en la memoria compartida denominada shared memory area: Transaccin SHMA
Shared Objects
Cmo utilizarlos
Se marca la clase ABAP que se quiera utilizar como Shared Memory Enabled en el class builder (SE24)
Shared Objects
Cmo utilizarlos
Crear un objeto compartido:
data my_area type ref to ZCL_TEST_SHMA_AREA. data my_sh_object type ref to ZCL_TEST_SHMA. TRY. my_area = ZCL_TEST_SHMA_AREA=>attach_for_write( ). CREATE OBJECT my_sh_object AREA HANDLE my_area. my_area->set_root( my_sh_object ). my_area->detach_commit( ). CATCH cx_shm_attach_error. ENDTRY.
Shared Objects
Cmo utilizarlos
Acceso a un objeto compartido en lectura:
data my_area type ref to ZCL_TEST_SHMA_AREA. data my_sh_object type ref to ZCL_TEST_SHMA. TRY. my_area = ZCL_TEST_SHMA_AREA=>attach_for_read( ). my_sh_object ?= my_area->get_root( ). my_area->detach( ). CATCH cx_shm_attach_error. ENDTRY.
Shared Objects
Demo
Shared Objects
Memory Inspector
Memory Inspector
Memory Inspector
Memory Inspector
Es una nueva funcionalidad del entorno ABAP que permite: Generar un fichero (memory dump) que contiene una foto de la memoria asociada a una sesin. Analizar el contenido de ese fichero para ver el consumo de memoria que realiza cada uno de los elementos ABAP (objetos, tablas, programas, etc).
Memory Inspector
Memory Inspector
Transaccin S_MEMORY_INSPECTOR
Simple Transformations
Simple Transformations
Simple Transformations
Simple Transformations
Simple Transformations
Lenguajes para transformacin XML en ABAP: XSLT Desde 6.10 Base de XI 2.0 Transformaciones complejas (DOM, XML cannico) Simple Transformations Desde 6.40 Slo para XML<->ABAP Slo transformaciones lineales (no DOM) Mayor eficacia Integrados en ABAP: Workbench: transportes, mantenimiento CALL TRANSFORMATION
SAP ESPAA 2005
Simple Transformations
ST tiene las siguientes caractersticas: Es un lenguaje declarativo simple Acceso en modo secuencial a datos XML (no se puede acceder a los nodos de XML en cualquier orden) Acceso directo a datos ABAP en el programa Descripcin simultnea de serializacin y deserializacin en el mismo programa Se restringen las transformaciones de ABAP a XML y de XML a ABAP (no se permiten de ABAP a ABAP o de XML a XML) Slo se pueden transformar datos ABAP elementales, estructuras y tablas internas. No se soportan referencias y objetos
SAP ESPAA 2005
Simple Transformations
Estructura de un programa ST:
<?sap.transform simple?> <tt:transform [template="tmpl"] xmlns:tt="http://www.sap.com/transformation-templates"> [<tt:root name="root1" /> <tt:root name="root2" /> ...] [<tt:parameter name="para1" [...] /> <tt:parameter name="para2" [...] /> ...] [<tt:variable name="vari1" [...] /> <tt:variable name="vari2" [...] /> ...] <tt:template [name=="tmpl"]> ... </tt:template> [<tt:template [name=="..."]> ... </tt:template> ...] </tt:transform>
SAP ESPAA 2005
Simple Transformations
Ejemplo:
<tt:transform template="tmpl1" xmlns:tt="http://www.sap.com/transformationtemplates"> <tt:root name="ROOT1"/> <tt:root name="ROOT2"/> <tt:template name="tmpl1"> <X1> <tt:value ref="ROOT1" /> </X1> <X2> <tt:value ref="ROOT2" /> </X2> </tt:template> </tt:transform>
Simple Transformations
De ABAP a XML:
DATA xml_string TYPE string. DATA source1(10) TYPE c VALUE 'Field1'. DATA source2(10) TYPE c VALUE 'Field2'. CALL TRANSFORMATION ... SOURCE root1 = source1 root2 = source2 RESULT XML xml_string.
De XML a ABAP:
DATA result1 LIKE source1. DATA result2 LIKE source2. CALL TRANSFORMATION ... SOURCE XML xml_string RESULT root1 = result1 root2 = result2.
Simple Transformations
Cuando usarlas:
Integracin de sistemas (XI) Servicios Web en ABAP (SOAP) Proceso XML en ABAP: Servicios Web REST (invocacin por URI, XML en respuesta) Persistencia de datos en XML Repositorios basados en XML (Web Dynpro) Mapeos de datos sencillos (Simple Tranformations) Mapeos de datos complejos (XSLT)
Error potential
BSP BSP BSP HTMLB BSP HTMLB Web Dynpro Foundation Web Dynpro Foundation Web Dynpro Pattern Web Dynpro Pattern
low short
Development time long
Preguntas?