Вы находитесь на странице: 1из 18

UNIT 1

1.1 The SAP Software Portfolio

 Diferent products: Desde el mas grande al mas pequeño


o SAP Business Suite
o Sap Business all-in-one (with mature IT infraestructure)
o Sap Business ByDesign (100-500 empl.)
o Sap Business One: for small and midsize companies(less 100 emp.)

- Business Process Platform:


o Sap Netweaver (web-based platform)
o Sap Application
- Composite Applications: u use to promote improvements more easily

 Included Applications
o Applications for Governance, Risk, and Compliance (GRC)
o Applications for Performance Management
o SAP Enterprise Resource Planning (SAP ERP)
o SAP Customer Relationship Management (SAP CRM)
o SAP Supplier Relationship Management (SAP SRM)
o SAP Supply Chain Management (SAP SCM)
o SAP Product Lifecycle Management (SAP PLM)
o Banks, . Healthcare, Universities and research institutes, Internal & external security, Public sector, Insurance, Service
industry,Wholesale, Retail, Logistics service providers, Media industry, Telecommunications, Utilities industry,
Automobile industry, Construction industry, engineering, construction and operations, High tech and electronics
industry, Consumer products industry, Aerospace and space industry, Mechanical engineering,etc.

1.2 SAP Release Strategy

Availability and Delivery:


 Restricted Shipment Phase: se restringe a algunos clientes de los cuales su crecimiento es controlado. Toma 6 meses, los
clientes se apuntan para participar. Sirve para tomar en cuenta las observaciones antes del software disponible.
 UnRestricted Shipment Phase: todos los clientes lo reciben sin ninguna restricción. Cuando alguien pide software de sap
generalmente recibe el ultimo release.
Maintenance Strategy:
 Mainstream maintenance: desde el primer release hasta usualmente 5 años después del default release .
 Extended maintenance: los siguiente años aumenta la tarifa en 2% mas(2%,4%,etc).
 Customer-specific maintenance: son los ajustes externos por ejm. Los cambios por cuestiones legales o para que soporte
nuevas tecnologías.
Upgrade: generalmente se saltan 1 o mas release cuando se migra.

1.3 SAP NetWeaver

Technology platform is designed for the flexible, step-by-step and efficient introduction of important IT processes in companies. Is also
the technical basis for the forward-looking, service-oriented architecture for business applications (SOA).
Reducing the amount of manual work required. SAP NetWeaver is based on a technology using industry standards and can be
enhanced with popular development tools such as Java 2 Platform, Enterprise Edition (J2EE), Microsoft .NET and IBM WebSphere.

IT practices and IT Scenaries

IT practices enable you to reach your company's goals. The aim of the IT scenarios is to help you as a customer, partner or service
provider with the installation, configuration and operation of SAP NetWeaver and the implementation of your defined IT scenarios.

SAP Netweaver layers:


 People integration: ensures that your employees have access to the information and functions that they need in order to perfo rm
their activities quickly and efficiently.
 Information Integration: This integration layer provides access to all structured and non-structured information in your company.
 Process Integration: ensures that business processes work across system borders in a landscape of heterogeneous systems.
 Application Platform: provides a proven infrastructure for operating business applications that are based on key technologies such
as J2EE or ABAP.Serve as an important instrument for the enterprise service architecture.

SAP NetWeaver Application Server


SAP ECC, SAP NW Portal, SAP CRM, SAP SRM estan basado en SAP NW AS. Es la base para los sistemas SAP

UNIT 2: NAVIGATION

2.1 Navigation in General

Diferentes accesos segun la tecnología:


 SAP ERP (with SAP ECC) -> SAP GUI for Windows (GUI = Graphical User Interface)
-> By browser and sap gui for java
 SAP NetWeaver BI 7.0 -> Browser-based interface (different browsers possible)
-> BEx Analyzer (additionally requires Excel on the front-end)
-> By sap gui for windows
 SAP Business ByDesign -> Browser-based interface (different browsers possible)
 SAP Business All-in-One -> SAP NetWeaver Business Client
Types of sap gui:
 SAP GUI for the Windows environment
 SAP GUI for the Java Environment
 SAP GUI for HTML
Log off: /nend, /nex, Alt + f4

2.2 Advanced Navigation in the SAP GUI

 Pfcg: actualizacion de roles


 Hay lista de favorites y Role-based menú(es asignado por roles)
 Para buscar la ruta a alguna transacción: SEARCH_SAP_MENU, SEARCH_USER_MENU.
 /i to delete the session
 F1, F4(maximo de opciones a desplegar 500)
 SAP Library: online documentation, contiene tips y trucos, conceptos de arquitectura, como configurar algunos procesos.
UNIT 3: THE SYSTEM KERNEL

3.1 Principal Architecture of the SAP NetWeaver Application Serve

 ABAP: advanced business application programming


 Cliente y Servidor: definicion: hay 2 formas:

 This software component can consist of a group of processes (such as a SAP Web Application Server) and is then called a
server for that service. Software components that use a service are called clients. At the same time, clients can also be servers
for other specific services.
 For sap system:
o Presentation processes (for example, for displaying screens)
o Application processes (for example, for executing application programs)
o Database processes (for example, for managing and organizing database data)
 Cuando instalas tienes q decidir como distribuir los procesos con el hardeware q tienes.Hay varios tipos:
o In single-tier configurations, todos los procesos se ejecutan en la misma pc.(sap on a laptop)
o Two-tier: se usa otro servidor solamente para los procesos de presentación o graficos. Es lo usual y puede mantener
el performance pero si excede el limite de usuarios puede generarse un cuello de botella entonces es mejor tener un
3er nivel.
o 3 niveles: cada proceso tiene su propio host.
 Tipos de SAP Netwear AS:
o AS ABAP system
o AS Java System
o AS Abap+Java system
 Una característica de SN AS es que las tablas abap, programas y aplicciones están en el esquema ABAP de la BD.
 AS ABAP architecture:
o The central instance se reconoce porque the message server and the enqueue work corre aqui. Sirve para la
comunicación interna y para saber cual sistema esta disponible. Otras instancias se llaman dialog instance.
o Gateway: conecta 2 sistemas diferentes
o Servidor de mensaje: es el que hace el balanceo de carga.
o NO SE DEBE HACER TABLA INTERNA DE UNA TABLA BUFFEREADA.
o SM50, SM51:
 AS JAVA Arquitecture:
o El central instance se reconoce cuando el Software Deployment Manager (SDM) corre aquí. El message service y el
enqueue service corre en el central service instance.

 AS ABAP+JAVA Arquitecture:
o ICM: internet communication manager, es el que decide quien atiende el requerimiento.
o JCo: SAP Java Connector, permite la comunicación de ambos ambientes.
o La data esta separada en su respective esquema de datos.

3.2 AS ABAP processes

 Cuando accedes por el sap gui, los requerimientos son procesados por el ABAP RE(runtime Environment) y si es via browser
podría ser atendido por el JAVA RE o ABAP RE, según el tipo de requerimiento.
 Processing user request by sap gui: se hace a traves de los 3 niveles: presentacion(sap gui), aplicación (abap dispatcher y
buffer) y el database level.
 Sm50: para ver los workprocess. Los tipos de workprocess: dialog, background, lock, update(up1(critico), up2(no critico)),
spool.
 Wp de dialogo: en linea, si se quiere actualizar se apoya en el wp lock. Se maneja por los usuarios. Y los background por los
jobs
 Tener al menos 2 wp de dialogo y 2 de background.
 Wp update solo actualiza BD.
 El servidor de mensajes mantiene la conexión entre los dispatcher de cada servidor de aplicaciones.
 Un servidor de aplicaciones solo puede tener 1 dispatcher.
 Gateway: puede conectar diferentes sistemas.
 ICM: para comunicar por web servidores de aplicación que pueden ser abap y java.
AS ABAP Process:

 El dispatcher: es el que administra los


recursos para atender los pedidos. Aplica el
principio de cola first in, first out. No es una
asignación fija del work process to user.
 Dialog work processes fulfill all
requests for the execution of dialog steps
triggered by an active user. Every dispatcher
requires at least two dialog work processes.
 Spool work processes pass sequential
data flows on to printers. At least one spool work
process is required for each SAP system. It is
possible to configure more than one spool work
process for each dispatcher.
 Update work processes execute update
requests. Similarly to spool work processes, you
need at least one update work process per SAP
system, and you can configure more than one per
dispatcher.
 Background work processes execute programs that run without interacting with the user. You need at least two background
work processes for each SAP system. You can configure more than one background work process for each dispatcher.
 The enqueue work process administers the lock table in the shared memory. The lock table contains the logical database
locks of the ABAP runtime environment of the SAP system. Only one enqueue work process is needed for each system.
Services for internal or external communications:
 The Message Server (MS) handles communication between the distributed dispatchers within the AS ABAP, thereby enabling
scalability of several parallel application servers. The message server is configured only once per SAP system.
 The gateway reader (GW) enables communication between SAP systems, or between SAP systems and external application
systems. There is one per dispatcher.
 The Internet Communication Manager (ICM) enables the communication with the SAP system using web protocols such as
HTTP. The ICM receives requests from the client and forwards them to the SAP system for processing. In an ABAP+Java
system (see below), it recognizes whether the request is a call for the AS ABAP or the AS Java and forwards the request
accordingly.

AS JAVA Processes:

 Thedispatcher distributes incoming


requests to the server processes.
 The server process executes the Java
applications. Every server process is multi-threaded
and can thus process a large number of requests in
parallel (in contrast to the ABAP work processes).
For each dispatcher there is at least one server
processes and there can be up to 16 server
processes.
 The Java message service manages a list
of Java dispatchers and server processes. It is
responsible for the communication within the Java
runtime environment.
 The Java enqueue service manages
logical locks that are set by the executed Java
application program in a server process.
 The Software Deployment Manager (SDM) is the standard tool used to install Java software components on the SAP Web AS
Java.
Flujo de proceso de requerimientos:

 RDBMS: relational database


managment system, guarda la data en tablas y
las relaciones entre tablas en 2 dimensiones.
 Database query flow

 Native SQL commands pueden


ser usados directamente en abap
poniendo EXEC SQL. END EXEC. El
abap interpreter no chequeara lo que este
dentro de estas sentencias.
 PBO and PAI

TRANSACTIONAL PROCESSING IN AS ABAP: Caracteristicas principales(ACID): Atomic, Consist, Isolated, Durable. Multiplexing:
trabaja con diferentes work process.
Processing Dialog Requests
Database Transactions and ABAP Transactions

Siempre que hay un pai o un pbo hay un db transaction y el abap transaction es todo el proceso completo.
 Relación entre transaccion de BD y SAP transaccion: work process must start a new database transaction for each dialog step.
 Sap system tiene su propio administrador de bloqueo, es implementada usando el enqueue work process. Existe una lock table
in the main memory.
 Diferentes modos de bloqueo:
 Write locks (lock mode Exclusive): data can be edited only by one user.
 Read locks (lock mode Shared): several users can have read access to the locked data at the same time.
 Enhanced write locks
 Optimistic locks
 Administrar bloqueos sm12. Eliminar bloqueo por sesison sm04
 En sap la actualización es asíncrona, es decir se va guardando la data y al finalizar recién se hace el commit definitivo.
Funciona asi:
o El programa bloquea la data para otros usuarios.
o Si tiene permiso para modificar la data el usuario puede modificarla por la sap transaction.
o Escribe los cambios en las tablas VB*
o Para terminar, cuando el usuario poner guardar recién se hace el commit work.
o Basada en la información q lanza después del commit, se lee el log.
o Luego se graban las tablas objetivos y se borran las tablas VB*, si es ocurrió un error se deja como estaba y en las
tablas VB* la data se marca como defectuosa.
o Se resetean los bloqueos.
 Tipos:
o V1 update: time-critical-primary
o V2 update:non.time critical-secondary.
 Own spolol : sp02
 Background processing
 Sm36: jobs
 Processing web request: ICM(Internet communication manager)

UNIT 4: COMMUNICATION AND INTEGRATION TECHNOLOGIES

4.1 Cross-System Business Processes

 Cross-system son sistemas que estan totalmente comunicados.


 ALE(Application Link Enabling): es un medio de creación y operación de distribución
aplicaciones. Objetivo asegurar funcionamiento de un sistema distribuido. Es un poderoso método de intercambio de data entre
sistemas, estos sistemas pueden estar localizados dentro de la misma empresa o en diferentes compañías.
 Para implementar debes saber:
o Procesos y objetos envueltos, información a transmitir, el formato, la tecnología de transferencia, tipo de trans.,
destino de trans.
 La data es identificada dentro de sap usando BAPIS
 Puedes transferir data usando RFC o http
 Tipos de transferencia: sincronica y asíncrona.

4.2 Remote Function Calls and BAPIs

 tecnologias interfaz usadas en SAP  ALE: Application Link Enabling, BAPI: Business Application Programming Interface,
CPI-C: Common Program Interface Communication, EDI: Electronic Data Interchange, HTTP: HyperText Transfer Protocol, LU
6.2: Logical Unit Type 6.2, RFC: Remote Function Call, OLE: Object Linking and Embedding, SMTP: Simple Mail Transfer
Protocol, SOAP: Simple Object Access Protocol, TCP/IP: Transmission Control Protocol / Internet Protocol, XML: Extensible
Markup Language
 RFC: interface protocol based on CPI-C or TCP/IP. Simplifica el proceso de comunicacion entre 2 sistemas diferentes.
 Administrar rfc: se37 y configuración de de conexiones RFC: SM59
 Trusted RFC
 BApi: son modulos de funciones especializadas, pueden ser accedidos por RFC interface, y creados y administrados por
Function Builder(se37). Representa los métodos de los BO.Sirve para conectar con programas externos, con internet, etc. Esta
definida en BOR como método en sap business object.
 Lee el BOR(business object repository): BAPI, para activar un BOR: SWO1.

4.3 Enterprise Services-Oriented Architecture (Enterprise SOA)

 Lee elSoftware para controlar y procesar business-related company process.


 There are role-based user interface, reduce human integrators.
 La data puede ser grabada en diferentes BD
 Enterprise service: describe una lógica de negocio mas grande y orientado al contexto, no se ocupa de las funciones al detalle,
sino de un procesos completo especifico que puede consistir en muchos pasos individuales pequeños
 Servicios web: pequeñas aplicaciones que se ejecutan dentro del marco de tecnologías de internet.
 SOA: implementada generalmente en across system, creada en abap o java, generalmente no tiene su propio BD. Permite
eficiente creación de nuevas aplicaciones sin modificar el otro sistema.

4.4 Web Services

 Web services: sap netweaver es su plataforma de desarrollo. Es un servicio que provee un program interface, esta disponible
via internet protocols. Son funciones individuales de una aplicación directamente disponible.
 Basic estándar son implementados:
 XML: extensible markup language
 SOAP: simple object Access protocol, protocol que puedes usar para llamar a los web services en sistemas distribuidos. Usa
HTTP para transportar el protocolo
 UDDI: Universal Description, Discovery and Integration, es un directorio de servicios y it’s provided by soap interface.
 WSDL: Web service description Language, es un meta lenguaje para describir los WS, las funciones, parámetros, códigos de
retorno son son descritos en una forma legible por maquina
 Outline of a web service

UNIT 5: FLOW OF AN ABAP PROGRAM

5.1 System Architecture and ABAP Programs

 SNW AS(Sap netweaver aplication server) sigue el principio de cliente/servidor, es escalable y consta de 3 niveles:
o Database level, la data es administrada con la ayuda de una RDBMS
o Aplication server level, donde corre los abap programs
o Presentation level, contiene el user interface donde cada uno puede acceder al programa, ingresar data o recibirla.
 Normalmente un programa no se compone de un solo bloque sino de varias unidades, eso se conoce como Modularizacion.

UNIT 6: INTRODUCTION TO THE ABAP WORKBENCH(Pag. 199)

6.1 Repository and Object Navigator

 El repositorio consiste en todos los objetos de desarrollos(programas, funciones, tablas, etc) Tu puedes tener objetos SAPy
objetos del cliente. En cuestión de base de datos es independiente al cliente que se aplique.
 El repositorio es dividida según los modulos o componentes. Todo objeto que se crea debe ser asignado a un paquete.
 El object navigator: incluye todas las herramientas para crear o editar los objetos del repositorio. Por ejm: abap editor, abap
dictionary, screen painter, menú painter, etc.
6.2 Developing Programs and Organizing Developments

 Todos los proyectos de desarrollo se llevan a cabo en el sistema de desarrollo, los obj. Se crean y editan luego son
transportados por medio de los change request al siguiente sistema. Dentro del change request se crean tareas.
 Las ventajas son que cada empleado va a saber que actividades ha realizado. Un obj. Puedes ser procesado por todos los
empleados pero para eso se crea una tarea por cada uno dentro del mismo request.
 Creacion de un paquete.
 Creacion de un programa:
o The activation of an object includes the following functions:
 Saving the object as an inactive version
 Syntax or consistency check of the inactive version
 Overwriting the previously active version with the inactive version (only after a successful check)
 Generating the relevant runtime object for later executions, if the object is a program.
 Creacion de programas

UNIT 7: BASIC ABAP LANGUAGE ELEMENTS(244)

7.1 Basic ABAP Statements

 Standard types: completos(d, t, i, f, string) e incompletes(c, n, x, p).


 Local Types: TYPES: gty_p_type TYPE p LENGTH 3 DECIMALS 2.
 Global types: elemento de datos, estructuras y tablas creadas en el diccionario de datos.
 Like lo usas para declarar variables con tipos que ya han sido definidos.
 Es mejor usar en la declaración: lv_var LENGHT 2 en vez de lv_var(2).
 Important principle in ABAP development is multilingual capability.
 Secuencia de procesos de calculos o empresiones aritmeticas: Expressions in parentheses come first, then functions, then
powers, then multiplication/division, and finally addition/subtraction.
 Loops: Unconditional/index-controlled loops(do-enddo), Header-Controlled loops(while-endwhile), Read Loops(select ,
loop).
 System fields

7.2 Debugging Statements on Elementary Data Objects

 Maximo 10 debugger pero se pueden usar los AND OR.

UNIT 8: MODULARIZATION(pag. 345)

8.1 Modularization - Basics and Overview

 Modularization unit es una parte del programa en el cual una parte de la funcionalidad es encapsulada para que puedas
utilizarlo las veces que quieras. Es más transparente y facil de mantener.
 Local Modularization: Subrutinas y Metodos en clases locales
 Global Modularization: modulos de funciones y métodos en clases globales
 Data encapsulation: la data no debe ser cambiada directamente por el programa call.
 El numero total de parámetros en una unidad de modularizacion se llama interface or signature(importing, exporting y
changing parameters)

8.2 Modularization with Subroutines

 Hay 3 pass type:


o Call by value, es una copia del parámetro original para asegurar q no se modifique.Se debe usar el prefijo VALUE
o Call by value and result, es lo mismo q la anterior pero ahora si se cambia el valor dentro de la subrutina si se cambia
el original. Se debe usar el prefijo VALUE.
o Call by reference, es cuando hace referencia directa es decir si cambia en la rutina cambia en el programa. Sin prefijo
VALUE.
 Global, Formal y local parameters o variables. Global se pueden ver por todas las partes del programa. Formal parameters y
local variables solo puede verse en la subrutina. Si tienen el mismo nombre una global y local se respeta la regla SHADOW:
local data shadows the global data with the same name.

8.3 Modularization with Function Modules

 Tiene los parámetros: import, export, changing y exceptions. Import: puede haber opcionales es decir puede o no recibir valor.
Export: siempre son opcionales.
 Cuando llamas a una función después de otra del mismo modulo de funciones no necesitas cargar de nuevo el modulo ni las
variables.
 Toda bapi o RFC no maneja excepciones, pero debe manejarse por una tabla de mensajes.
 Tienen la opción de traspaso de valores, es decir es una copia y no debería cambiar el valor del programa que llama.
 Business object and BAPIS:
o BOR(Business Object Repository) es una clase de las tablas SAP y las bapis(business aplication programming
interface) son los métodos que permiten acceder a la data.Son funciones que pueden llamar remotamente desde otro
sistema.
o Ejemplos: getlist, getdetail, additem, removeitem, create, change, delete, cancel.
o TX: BAPI

8.4 Modularization with Methods of Global Classes

 La diferencia es que cuando usas funciones dentro de un programa, esa funcion puede ser llamada desde fuera pero en las
clases solo los métodos públicos puedes ser llamados desde fuera; los métodos privados solo se llaman dentro del mismo
programa como las subrutinas.
 Otra diferencia es que con las funciones solo puedes crear una instancia y con los métodos puedes crear las que quieras.
Cada instancia puede tener diferentes valores del atributo. CREATE OBEJCT.
 Los static attributes solo tienen un valor en todo el programa.
 Clase => método
 Handling Classic Exceptions

cl_bc400_compute=>get_power
EXPORTING
iv_base = pa_int1
iv_power = pa_int2
IMPORTING
ev_result = gv_result
EXCEPTIONS
POWER_VALUE_TOO_HIGH = 1
RESULT_VALUE_TOO_HIGH = 2.
CASE sy-subrc.
WHEN 0.
WRITE gv_result.
WHEN 1.
WRITE 'Max Value for Power is 4'.
WHEN 2.
WRITE 'Result value was too high'.
ENDCASE.

 Handling Class-Based Exceptions

TRY.
cl_bc400_compute=>get_power
EXPORTING
iv_base = pa_int1
iv_power = pa_int2
IMPORTING
ev_result = gv_result.
WRITE gv_result.

CATCH cx_bc400_power_too_high .
WRITE 'Max Value for Power is 4'.
CATCH cx_bc400_result_too_high .
WRITE 'Result value was too high'.
ENDTRY.
8.5 Modularization with Methods of Local Classes (Preview)

 La diferencia entre clase global y local, es que la primera puede mantenerse con el Class Builder y las locales son creadas
directamente desde el programa principal.
 Tiene 2 bloques: definition and implementation of the class

 Los input parameters pueden ser opcionales poniendo en la declaración OPTIONAL o DEFAULT.

UNIT 9: COMPLEX DATA OBJECTS(Pag. 387)

9.1 Working with Structures: Hay 2 maneras de crear, dentro del programa y en el abap dictionary.

9.2 Using internal tables: Se usan para: retener data de tablas o archivos que se van a procesar, para mostrar data, o para alimentar
funciones o métodos.

 Hay 3 tipos de tablas:

 Cuando una table entry es accesada especificando el row number se llama index Access y cuando es accesada por key
value se llama key Access.
 Standard Table: index y key Access pueden usarse. Debes usar este tipo si usas mas el index para accede a la tabla.
 Sorted Table: index y key Access pueden usarse. Debes usar este tipo si usas mas el key para accede a la tabla y necesitas q
la data automáticamente se ordene por la key.
 Hashed Table: solo key Access puede usarse. Debes usar este tipo si tienes una tabla con bastante data y si solo vas a
accesar por la key.
 Para la declaracion de table: DATA: gt_tabla TYPE TABLE OF st_tabla. Los valores por default son:
o Table type: Standard (default)
o Uniqueness of key: Non-unique (only option for a standard table)
o Table key: Default key (All non-numeric table fields are key fields)
 Modos de acceso:
 Append solo para standard tables.
 Procesar set de data:

 With standard tables, this content is appended, in sorted tables, the row is inserted in the right place with reference to the key
fields, and in hashed tables it is inserted according to a hash algorithm.
 El numero de row e un Loop es sy-tabix.
 Sorted table es mejor para hacer loops y hashed tables para hacer read table.
 En un sort si no se especifica siempre es ascending por default.
 Refresh = clear a una tabla sin cabecera.
 Diferencia entre Refresh y Free: los 2 limpian totalmente la tabla pero el primero conserva la parte de la memoria asignada.

UNIT 10: DATA MODELING AND DATA RETRIEVAL(Pag. 464)

10.1 Data Modeling and Transparent Tables in the ABAP Dictionary

10.2 Reading Database Tables

 There are four types of reuse components that encapsulate database accesses:
o Logical databases = data retrieval programs that read data from tables that belong together Hierarchically.
o Function Modules = subroutines stored in the function library of the SAP system with encapsulated functions, such as
reading from hierarchically related tables)
o BAPIs = Methods of Business Objects with read function
o Methods of global clases
 SY-DBCNT contains the number of records read en un select.
 Array Fetch es la tecnica cuando se hace un select se guardan los datos en una table interna con INTO TABLE. El transporte
de data es en bloque y no de row by row como en el caso de SELECT, ENDSELECT.
 Se pueden crear secondary indexes para realizar búsquedas con campos q no son clave.
 La data se llena primero desde el buffer pero si se necesita la mas reciente es con bypass the buffer pero debe evitarse.
 Cuando se requiere acceder a 2 tablas para mejorar performance se debe utilizar JOIN.
 Tienes que especificar 3 cosas para un TABLE JOIN:
o Join tables
o Join conditions
o Join columns
 En vez de hacer join puede crearse vistas en el diccionario.
 Ejm: MODIFY et_flights FROM ls_flight INDEX sy-tabix TRANSPORTING percentage.

10.3 Authorization Check

 Posibles valores: 01 = create, 02 = change, 03 = display.


 La sentencia que se usa es: AUTHORITY-CHECK.
 Tx: SU21

 Does the client limitation have to be specified in the WHERE clause of a SELECT statement if the database table to be read
has the client field? Answer: No; if the client limitation is missing, only records of the executing client are read - that is, the client
in which the program is called.

UNIT 11: ABAP OPEN SQL

11.1 ABAP Open SQL: Optimizing Statements

 Las Brechas en la final del índice (es decir, los campos más a la derecha) son menos críticos
que las brechas en el principio
 Si no se usa bien las llaves primarias puede empeorar el performance porque se hace un scan total a la tabla.
 Es mejor indicar cuales campos exactamente necesitan en el select.
 En el select con array fetch la data es transferida en bloques de 32k.
 Si quieres realizar operaciones es mejor usarlas en el select como SUM, AVG, COUNT; AX; MIN.
 Es mejor utilizar JOIN y VIEWs en vez de los select anidados.
 Para buscar funciones donde se usen vistas es
por la Tx: SE84, SE81.

 Restricciones para un outer join:


o only AND is posible en el ON condition.
o El On condition debe contener un campo
de la tabla derecha
o Ninguno de los campos de la tabla de la
derecha pueden aparecer en el WHERE para un left join.
 Una desventaja de usar ABAP JOIN en vez de
una VISTA de diccionario es mas complejo porque accede
a una tabla regular.
 Subquerys es un query dentro de un select,
update o delete.

UNIT 12: SELECTION SCREEN

12.1 Generating and Designing the Selection Screen

 Los nombres de los parámetros máximo tienen 8 de longitud.


 Value check se asegura que la entrada sea valida.
 Los posibles valores de los campos sign y option de un select.option(abajo izquierda)

 Sintaxis de un select-option(arriba derecha)


 AT SELECTION-SCREEN OUTPUT runs immediately before the selection screen is displayed and AT SELECTION-SCREEN
runs immediately after the selection screen is displayed.
 Los frames pueden ser anidados hasta 5 de profundidad.
 Puede haber llamada de un screen dentro de otro screen. Se hace con CALL SELECTION-SCREEN.

 Si ejecutas o F8 sy-subrc = 0, si pones cancel o


exit sy-subrc = 4.
 Puedes hacerlo un dialog box poniendo: CALL
SELECTION-SCREEN <nn> STARTING AT <f1> <c1>
ENDDING AT <f2><c2>.

TABPAGES control:

 Para ver que dynpro sta siendo procesado es sy-


dynnr.
 [NESTING LEVEL <m>]: The nesting level
NESTING LEVEL further reduces the size of the
subscreen. You can use it to prevent scrollbars from
appearing when you use the subscreen in a tabstrip
control on the selection screen and the tabstrip already
has a frame. If the tabstrip control does not have a frame,
use NESTING LEVEL 0. For each frame around the
tabstrip control, increase NESTING LEVEL by 1.
 Definicion de tab scrip:

12.2 Input Checks and Variants

 La evaluación de los datos ingresados se hace en el AT SELECTION-SCREEN. Si un error ocurre todos los parámetros están
habilitados para ingreso de datos.
 ON <f> ó <seltab> : si un error ocurre solo estos campos estarán habilitados para ingreso de datos.
 ON BLOCK: sirve para evaluar un juego de datos que esta en un grupo. Si un error ocurre, todos los campos dentro del grupo
estarán habilitados para input.
 ON END OF <seltab>: evento pertenece al PAI para multiples selecciones(rango).

 Variantes: las variantes pueden transportarse, un usuario puede crear cualquier cantidad, y estas variantes solo son validas
para el mismo programa, no pueden ser compartidas con otros.
 Se puede proteger una variante de cambios no autorizados, seleccionando como Only Display in Catalog, entonces solo será
accesado por abap developers.

12.3 Selection screen: Modifications at Runtime

 At selection-screen ouput = PBO, At selection-screen = PAI

 El sy-ucomm = sscrfields-ucomm.
 Hide => screen-active = 0, Show => screen-active =
1, screen-input = 1.
 Se puede cambiar los campos haciendo el LOOP
AT SCREN.
UNIT 13: PROGRAMS CALLS AND DATA STORAGE MANAGEMENT

13.1 Programs Calls and Data Storage Management

 Submit and call transaction


 Insert: el proceso del programa que llama es pausado mientras que el programa llamado es ejecutado. Al terminar este su
proceso, el programa que llama continua.
 New start: cuando el programa llamado es iniciado, el programa que llama es terminado.
 Submit(izquierda)/ Transaction(derecha)

 Leave to transaction: termina una transacción para empezar otra, es como /N<tx>.
 Con el Call transaction: insertas una transacción y la otra permanece en pausa.
 Diferencia entre sesion interna y externa, es que cada ventana de sap gui es una sesión externa y puedes abrir hasta 6
simultaneamente. La sesión interna es dividida en sesiones internas(en una pila) que pueden ser máximo 9.
 Grupo de programas: cuando se crea una nueva sesión interna, siempre se crear el programa principal del grupo, se pueden
crear cualquier numero de programas dentro de la misma sesión.
 Todos los programas dentro de un grupo comparten las mismas tablas declaradas. Y cuando se usa un call screen llama a los
screen del programa principal.
 Cuando llamas a funciones o métodos de una clase o grupo de funciones que no ha sido llamado antes, se carga en un grupo
de programas adicional dentro de la misma sesión interna. Caso contrario a cuando se llama subrutinas del mismo programa,
ahí solo se llama a la subrutina y sigue siendo del mismo grupo de programas de la misma sesión interna.
 Modos de traspasar data de un programa a otro.

 El 4 es por BD y el 5 por archivos locales.


 Cuando tienes un selection screen y quieres pasarle datos al llamarlo de otro programa puedes hacerlo de 2 maneras:
o Especificando variante
o Especificando valores a los campos del screen.(abajo izquierda)

 Lo anterior es usando el submit, pero usando el call transaction puedes pasar una tabla interna, por ejm cuando hacemos un
batc-input.(arriba derecha)
 Sap Memory: los valores en el sap memory duran hasta que la sesión del usuario es finalizada. Todas las sesiones externas
de un usuario tienen acceso a esta memoria.
 Se usa el SET PARAMETER ID y GET PARAMETER ID…FIELD ….
 En el abap dictionary se define el nombre de parámetro que debe tener el elemento de datos y con ese ID se seteo u obtiene el
dato.
 Abap Memory: los valores son almacenados dentro de cada sesión externa. Es usada para intercambiar datos entre cualquier
de las sesiones internas de la misma sesión externa.
 Para inicializar el abap memory se pone /i.
 Se usa el EXPORT … TO MEMORY ID , IMPORT … TO MEMORY ID, y para liberar la memoria: FREE MEMORY ID.
 Cuando haces un call transaction usas el abap memory.

UNIT 14: NEW TEST TOOLS

 Se usa el code inspector para chequear tus programas en performance, seguridad y errores semánticos.
 Performance:
o Are indexes used for database access?
o Have any SELECT statements been embedded in loops?
 Security
o Are other clients accessed within the program?
o Are dynamic elements used in the SELECT statement?
 Typical semantic errors
o Is the sy-subrc checked after each AUTHORITY-CHECK statement?
o Is a client actually specified in the CLIENT SPECIFIED statement?
o Are several type E (error) messages sent consecutively?
 Al final recives una lista de errores o warnings.
 Si no quieres que salga como error o warning una línea del código al final se debe agregar “#EC
 El code inspector también se puede ejcutar llamando a la tx SCI. Donde hay 3 cosas que puedes verificar: Variantes, Object
sets, inspections(si necesitas guardar el resultado de la inspection o también si quieres hacerlo en fondo).
 Check categories:
o General Checks: contain data formatting, such as the list of table names from SELECT statements.
o Performance Checks: contain checks for performance and resource usage, such as:
 analysis of the WHERE condition for SELECT / UPDATE and DELETE
 SELECT statements that bypass the table buffer
 low-performance access to internal tables
o Security Checks: contain checks of critical statements, cross-client queries and insufficient authority checks.
o Syntax Check/Generation: contain the ABAP syntax check, an extended program check, and generation.
o Programming Conventions: contain checks of naming conventions.
o Search Functions: contain searches for tokens (words) and statements in ABAP source code.