
El MiniSap es una versión reducida del SAP que no incluye ningún módulo, se utiliza para empezar a aprender la programación en Abap; que es el lenguaje de programación de SAP; ya que en teoría MiniSap permite programar todo lo que se puede programar en SAP.
El MiniWas es la versión que además de permitir hacer todo lo que se puede hacer con el MiniSAP, también permite practicar la programación orientada a Web (BSP).
IDES significa "Internet Demonstration and Evaluation System".
Y se creó con fines demostrativos y es un sistema de prueba desarrollado y utilizado por SAP, que también está disponible para los clientes, el cual dispone de datos ficticios para realizar practicas de programación.
SAP es una aplicación cliente/servidor, por lo que se tiene que instalar la aplicación SAP GUI PAHT 7 en la maquina cliente, la cual creara el acceso "SAP LOGON" que nos permitirá crear la conexión al servidor SAP.
La aplicación SAP LOGON es la que se utiliza para realizar la conexión con el servidor de aplicaciones de SAP, donde necesitamos unos datos que nos lo tiene que proporcionar el Servidor.
La pantalla principal de SAP se llama SAP EASY ACCESS, y está formada por:
Varios menús compuestos por opciones.
Una estructura de carpetas, que es como SAP organiza sus transacciones.
Como desarrollador de ABAP, tenemos una carpeta principal “WORBENCH ABAP”, que sobre ella cuelgan las principales transacciones con la que vamos a trabajar:
SE11-diccionario de datos.
SE38-editor ABAP, etc.
Las variables de sistema, son variables creadas por el sistema ABAP, algunas se informan en el momento de iniciar la sesión, otras se informa al ejecutar un programa, y otras se informa durante la ejecución del programa.
Antes de empezar a programar es necesario conocer que es una variable, las variables se usan para contener un objeto o valores.
Tipo para fechas D, formato: AAAAMMDD con una longitud fija de 8 dígitos, donde:
AAAA representa el año 4 dígitos.
MM representa el mes 2 dígitos.
DD representa el día 2 dígitos.
Para almacenar números sin decimales se puede usar el tipo "I".
Para almacenar números sin decimales se puede usar el tipo "I".
T - Tipo para variables tipo hora con una longitud fija de 6 Bytes y con un formato de "HHMMSS".
DECFLOAT16 - Tipo de número Decimal de punto Flotante con una longitud fija de 8 Bytes.
DECFLOAT34 - Tipo de número Decimal de punto Flotante, con una longitud fija de 16 Bytes.
STRING - Tipo de cadena de caracteres de longitud dinámica.
XSTRING - Tipo para secuencia de bytes de longitud dinámica (cadena hexadecimal).
Las variables de tipo "C", se utilizan para almacenar cadenas de caracteres alfanuméricos y en la declaración se tiene que especificar la longitud.
Las variables de tipo "P" se usan para almacenar números empaquetados y en caso de usar decimales se tiene que indicar que parte se usara para los decimales.
Las variables de tipo N, almacenan caracteres numéricos y se tiene que indicar su longitud.
Las variables de tipo X almacenan cadena hexadecimales y se tiene que indicar su longitud.
Para declarar una constante se usa "CONSTANT" y tendrán un valor en el momento de la declaración que no podrá variar nunca, para asignarle un valor se usa la palabra VALUE.
Las variables de sistema, son variables creadas por el sistema ABAP, algunas se informan en el momento de iniciar la sesión, otras se informa al ejecutar un programa, y otras se informa durante la ejecución del programa.
La sentencia ADD se usa para sumar un importe al importe actual de una variable.
La sentencia SUBTRACT se usa para restar un importe al importe actual de una variable.
La sentencia MULTIPLY se usa para multiplicar un importe al importe actual de una variable
La sentencia DIVIDE se usa para dividir un importe al importe actual de una variable.
La sentencia MOD se usa para conocer el resto de una división.
Para usar la sentencia exponencial, se utiliza los caracteres "**".
Para obtener el cuadrado se utiliza: cuadrado = lado ** 2.
Para obtener el cubo se utiliza: cubo = lado ** 3.
Para calcular la raÍz cuadrada de un número se utiliza la sentencia SQRT.
La sentencia COMPUTE se utiliza para asignar una operación aritmética a una variable.
La sentencia CONDENSE se utiliza para eliminar los espacios en blanco iniciales y finales, y deja un solo espacio entre las palabras.
Tiene la opción NO-GAPS, que elimina absolutamente todos los espacios de la cadena, iniciales, finales e intermedios.
La sentencia CONDENSE se utiliza para eliminar los espacios en blanco iniciales y finales, y deja un solo espacio entre las palabras.
Tiene la opción NO-GAPS, que elimina absolutamente todos los espacios de la cadena, iniciales, finales e intermedios.
La sentencia REPLACE se utiliza para remplazar uno o varios caracteres por otros, teniendo en cuenta que solo sustituye la primera búsqueda encontrada.
La sentencia REPLACE ALL OCCURRENCES OF trabaja igual que REPLACE, pero sustituye todos los caracteres encontrados, no solo el primero.
¿Hay algún error?
La sentencia SEARCH, se utiliza para buscar una subcadena dentro de una cadena.
Se utiliza paralelamente con la variable de sistema SY-FDPOS que devuelve el número de caracteres que hay antes de la subcadena.
En el caso de que no se encuentre la subcadena dentro de la cadena, o que la subcadena se encuentre en la primera posición, la variable SY-FDPOS valdrá 0, por lo que no se puede usar como identificador de si se ha encontrado o no.
La sentencia SHIFT, se utiliza para desplazar el contenido de una variable hacia la izquierda o hacia la derecha, teniendo en cuenta que se eliminaran los caracteres desplazados. Tiene 4 agregaciones:
BY 1 PLACES LEFT, que desplaza hacia la izquierda el número de caracteres indicados.
BY 1 PLACES RIGHT, que desplaza hacia la derecha el número de caracteres indicados.
LEFT DELETING LEADING '***', que desplaza a la izquierda la subcadena indicada.
RIGHT DELETING TRAILING '***', que desplaza a la derecha la subcadena indicada.
La sentencia TRANSLATE, se utiliza para pasar los caracteres de mayúsculas a minúsculas y viceversa. Tiene 2 agregaciones:
TO LOWER CASE, que convierte los caracteres en minúsculas.
TO UPPER CASE, que convierte los caracteres en mayúsculas.
La sentencia SPLIT, se utiliza para dividir una cadena en subcadenas, indicando cual sera el carácter que se utiliza como identificador para realizar las divisiones
La sentencia STRLEN, se utiliza para saber la longitud del contendido de una variable, sin tener en cuenta los espacios en blanco finales.
Las condiciones se usan en las sentencias lógicas para identificar que bloque de código ejecutar. Y existen los siguientes tipos:
Igual: "=" ,o "EQ".
Diferente: "<>", o "NE".
Menor que: "<", o "LT".
Menor igual que: "<=" o "LE".
Mayor que: ">" o "GT".
Mayor igual que: ">=" o "GE"
La sentencia IF, se utiliza para ejecutar un código cuando se cumple una condición.
La sentencia ELSE se utiliza con la sentencia IF, y se utiliza para ejecutar un bloque de código cuando no se cumple la condición del IF.
Los IF anidados se utilizan para cuando necesitamos ofrecer mas de dos opciones, no es recomendable anidar mas de 3 niveles de IF.
La sentencia CASE se utiliza para evaluar varias opciones. Es aconsejable su uso cuando cada opción solo tiene un valor.
La sentencia DO, se utilizar cuando queremos realizar un bucle, para repetir un código un número de veces.
Tiene la cláusula TIMES, con la cual se indica el número de repeticiones del buche.
La sentencia EXIT, que provoca el fin del bucle.
La sentencia CONTINUE, con la que ignora el código que viene a continuación.
La sentencia EXIT, se utiliza dentro de una sentencia DO, y se usa para finalizar la ejecución del bucle.
La sentencia CONTINUE, se utiliza dentro de la sentencia DO,y se usa para ignorar el código que viene a su continuación y empezar una nueva vuelta.
La sentencia WHILE, se utiliza para realizar un bucle mientras se cumpla la condición que se indica.
Se puede usar las sentencias EXIT y CONTINUE.
Si la condición no se cumple desde el principio, no entrará en el bucle.
as tablas internas se pueden declarar de diversas formas.
Cuando queremos declarar una variable con la misma estructura(solo puede almacenar un registro) que una tabla usamos la cláusula TYPE:
DATA GWA_TABLA1 TYPE MARA.
Cuando queremos declarar una variable con la misma estructura que una tabla y se pueda almacenar mas de un registro, usamos la cláusula TYPE TABLE OF.
DATA GT_TABLA1 TYPE TABLE OF MARA
Para insertar datos tenemos que saber en que tipo de tabla interna vamos a insertarlos:
STANDARD:
Declarada con cabecera:
APPEND GT_TABLA TO GT_TABLA.
Declarada sin cabecera:
APPEND GWA_TABLA TO GT_TABLA.
SORTED y HASHED:
INSERT GWA_TABLA INTO TABLE GT_TABLA.
Para añadir un registro en una tabla STANDARD sin cabecera, se necesita crear una variable en el work area, con la misma estructura que la tabla interna.
Para añadir la estructura a la tabla interna se utiliza la sentencia APPEND
Para declarar una tabla interna STANDARD con cabecera, se utiliza la cláusula final WITH HEADER LINE.
Para añadir un registro en la tabla interna se utiliza la sentencia APPEND y se utiliza la cabecera
Las tablas SORTED, tienen que declararse con una clave, que pueden ser únicas o no únicas:
WITH UNIQUE KEY.
WITH NON-UNIQUE KEY.
Para insertar un registro en una tabla SORTED, se utiliza la sentencia INSERT ... INTO TABLE
Para declarar una tabla interna STANDARD con cabecera, se utiliza la cláusula final WITH HEADER LINE.
Para añadir un registro en la tabla interna se utiliza la sentencia APPEND y se utiliza la cabecera
La sentencia SELECT... INTO TABLA, se utiliza para grabar los registros de una tabla del diccionario de datos en una tabla interna con la misma estructura.
La sentencia SELECT SINGLE... INTO, se utiliza para grabar un registro de una tabla del diccionario de datos en una estructura con la misma estructura.
La sentencia SELECT ... INTO CORRESPONDING FIELDS OF TABLE, se utiliza cuando queremos asignar los valores de los campos de una tabla de diccionario de datos a una tabla internar, por el nombre de las columnas y no por la posición que ocupa.
La sentencia SELECT ... INTO CORRESPONDING FIELDS OF, se utiliza cuando queremos asignar los valores de los campos de una tabla de diccionario de datos a una estructura, por el nombre de las columnas y no por la posición que ocupa
Para recorrer una tabla se puede usar la sentencia LOOP AT, que realiza un bucle y en cada vuelta informa una estructura con los datos de cada registro.
Puede usar la cláusula WHERE, para filtrar por los campos.
Si queremos recorrer una tabla interna y no hace falta saber los datos de los registros, podemos usar la sentencia LOOP AT TRANSPORTING NO FIELDS, con la cual no hace falta indicar una estructura.
Con la sentencia LOOP AT, se puede usar la sentencia EXIT.
La sentencia MOVE-CORRESPONDING, se utiliza para mover el valor de las columnas con el mismo nombre, entre estructuras o tablas.
Para leer un registros por su posición en la tabla se puede usar la sentencia READ TABLE INDEX, al cual hay que que indicarle el número de registro que se quiere leer.
Para buscar un dato en una columna, se puede usar la sentencia READ TABLE WITH KEY.
Se puede usar en columnas que no formen parte de un índice, pero tiene poco rendimiento
La sentencia READ TABLE TRANSPORTING NO FIELDS, se utiliza cuando queremos leer un registro de una tabla interna sin utilizar una estructura.
Se suele utilizar para saber si existe un valor en al tabla interna
La sentencia MODIFY se utiliza para modificar un registro de una tabla interna, y necesita usar una estructura.
Para indicar que solo se quiero modificar un campo en concreto, se utiliza la cláusula TRANSPORTING
Los FIELD-SYMBOLS, se utilizan para apuntar a otros objetos y toda modificación que se haga sobre el FIELD-SYMBOLS, se realizara sobre el objeto al que esta asignado.
Primero hay que declara el FIELD-SYMBOLS con el la misma estructura que el objeto al que apunta y para asignar el FIELD-SYMBOLS al objeto, se usa la clausula ASSIGNING
La sentencia DELETE TABLE se utiliza cuando queremos borrar un registro de una tabla, usando los datos de una estructura.
La sentencia DELETE, se utiliza para eliminar un registro de una tabla interna, y con la cláusula INDEX se indica el número del registro que se quiere eliminar.
La sentencia SORT se utiliza para ordenar una tabla STANDARD.
La clausula ASCENDING, se utiliza para ordenar ascendentemente.
La clausula DESCENDING, se utiliza para ordenar descendentemente
La sentencia DESCRIBE TABLE se utiliza para obtener la cantidad de registros que tiene una tabla interna en un programa.
Al completar el 100% de los estudios, puedes solicitar el Certificado de Mywebstudies
El curso de ABAP programación estructurada, está diseñado para que los estudiantes puedan acceder sin ningún conocimiento previo a los conceptos básico de la programación ABAP ya que este curso esta diseñado desde un nivel 0 a avanzado .
Aprenderás :
* Utilizar el interfaz del Servidor .
* Trabajar con los diferentes tipos de datos que existen en ABAP .
* Trabajar con las sentencias aritméticas .
* Operaciones con caracteres .
* Sentencias Logísticas .
* Utilizar tablas intensas .
* Solucionar errores de programación con la función Debugging .
* Realizar programación de dialogo para crear pantallas graficas .
* Externalizar rutinas, para optimizar el código .
* Crear funciones para reducir el código de programa .
Una vez terminado este curso te aconsejamos realizar el curso de introducción SAP con el cual comprenderás las principales funciones de los módulos que componen SAP y conocerás la otra parte de la gestión SAP, Ya que ABAP también se utiliza añadir nuevas funcionalidades o modificar la existentes. Recuerda que el propio SAP esta programado en ABAP .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
The ABAP structured programming course is designed so that students can access the basic concepts of ABAP programming without any prior knowledge, since this course is designed from level 0 to advanced.
You'll learn :
* Download, install and configure access to a SAP server.
* Use the Server interface.
* Work with the different types of data that exist in ABAP.
* Work with arithmetic sentences.
* Character operations.
* Logistics sentences.
* Use intense tables.
* Fix programming errors with the Debugging function.
* Perform dialogue programming to create graphic screens.
* Outsource routines, to optimize the code.
* Create functions to reduce program code.
Once this course is finished, we advise you to take the SAP introduction course with which you will understand the main functions of the modules that make up SAP and you will know the other part of SAP management, since ABAP is also used to add new functionalities or modify existing ones. Remember that SAP itself is programmed in ABAP.