Curso Online ABAP Programación Estructurada
10 €
Este producto no sustituye la opinión especializada. Siempre debes consultar a un profesional para tratar asuntos relativos a tu salud.
Impuestos no incluidos en el precio.
Nivel Básico a Experto
11 Horas de video
200 Horas de Estudio
92 Test
Certificado
3.323 Alumnos
.
OFERTA ANIVERSARIO
18€
Adquiere todos los cursos de la web por solo 18€
Con esta oferta accederás a todos los cursos de la web por solo 18€ y nunca más tendrás que volver a pagar. Accederás a una cantidad increíble de cursos y también tendrás acceso a todos los cursos que vamos sacando después de tu compra.
¿De verdad te vas a comprar un curso en otra web y gastarte un dineral en uno solo?, ahora mismo tienes la oportunidad de acceder a todos estos cursos y por solo 18€.
Esta oferta es única y solo dura esta semana, si no lo aprovechas la perderás y tendrás que esperar otro año a que la volvamos a poner.
Fíjate en el listado de Master y cursos Online que disponemos. Puedes ver el precio Real de cada Curso y ahora los puedes tener todos por solo 18€. No pierdas esta oportunidad, ¿En qué otra web vas a tener una oferta como esta?
¿Aún tienes dudas? Te lo ponemos mucho más fácil, si por lo que sea no estas satisfecho, te damos 15 días para solicitar la devolución, la cual se realiza de forma inmediata. Garantizado.
PROCESANDO INSCRIPCIÓN ......
PROCESANDO EL CÓDIGO PROMOCIONAL, ESPERE POR FAVOR
Permite inscribirte en la versión gratuita de este curso
Tienes el Plan Quiero Estudiar Puedes Comprar este curso totalmente Gratis

ABAP PROGRAMACIÓN ESTRUCTURADA
Este es el glosario del Curso Completo de ABAP Programación Estructurada, con el cual podrás identificar el contenido principal que se desarrolla en dicho curso.
Para este curso, ofrecemos el Curso Completo ABAP Programación Estructurada, donde se podrá acceder a la totalidad de la información tal como son los vídeos, documentación y test de los principales temas del curso.
INTRODUCCIÓN.
1.1. CONCEPTO.
ABAP (Advanced Business Application Programming) es un lenguaje de cuarta generación, propiedad de SAP, que se utiliza para programar la mayoría de sus productos (R/3, mySAP Business suite...).
Utiliza sentencias de Open SQL para conectarse con prácticamente cualquier base de datos. Cuenta con miles de funciones para el manejo de archivos, bases de datos, fechas, etc. Permite conexiones RFC (Remote Function Calls) para conectar a los sistemas SAP con cualquier otro sistema o lenguaje de programación.
SAP suministra una instalación limitada de R/3 llamada MiniSAP para la práctica de la programación en ABAP. MiniSap ha sido reemplazado por SAP NetWeaver 7.03 Trial Versión
¿Dónde obtener MINI SAP?
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.
¿Dónde obtener MINI WAS?
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).
¿Dónde obtener un acceso IDES a un Servidor SAP?
IDES significa "Internet Demonstration and Evaluation System".
Descarga SAP GUI 7
SAP es una aplicación cliente/servidor, por lo que se tiene que instalar la aplicación SAP GUI PAHT 7 en la máquina cliente, la cual creará el acceso "SAP LOGON" que nos permitirá crear la conexión al servidor SAP.
Instalación SAP GUI 7
SAP es una aplicación cliente/servidor, por lo que se tiene que instalar la aplicación SAP GUI PAHT 7 en la máquina cliente, la cual creará el acceso "SAP LOGON" que nos permitirá crear la conexión al servidor SAP.
Conexión con SAP LOGON
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.
Interfaz SAP
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.
Carpeta Workbench ABAP
En la carpeta de herramientas se puede encontrar las transacciones que principalmente nos permite realizar consultas y configuraciones de aspectos concretos de SAP.
Tal como crear una sociedad o cambiar sus propiedades.
Paquete y Orden de transporte Sap
El sistema R/3 de SAP está basado en una arquitectura cliente-servidor, lo que significa que hay una distribución de las tareas que debe realizar el sistema.
También se puede instalar en diferentes sistemas operativos y trabaja con diferentes tipos de base de datos.
TIPOS DE DATOS ABAP.
Buffer de Programa.
Para que se puedan ejecutar los programas, el servidor de aplicaciones almacena dichos programas en un buffer que se denomina “buffer de programa”.
Cuando un programa se tiene que ejecutar, se realiza una búsqueda en el buffer de programa.
Si es encontrado:
Y no ha sido modificado en la base de datos, la copia almacenada es usada.Si no se encuentra, o si la copia de la base de datos es más nueva,
El programa se vuelve a cargar.
Roll Área
El roll área se crea cada vez que un usuario ejecuta un programa, es decir un roll área por usuario y programa, y se usa para almacenar información sobre la ejecución de los programas, donde almacena variables, punteros, etc, de cada ejecución.
Si varios usuarios ejecutan un programa a la misma vez, ejecutan la misma copia que está en el buffer de programa, pero los datos de la ejecución son almacenados en el roll área de cada usuario, permitiendo que cada uno tenga valores diferentes para los objetos del programa.
Objetos de Datos.
Existen dos tipos de objetos de datos:
Objetos de datos modificables
Objetos de datos NO modificables
Cuando un programa se ejecuta se reserva un espacio de la memoria para los objetos de datos que están ubicados en el área roll del programa, permitiendo la lectura y modificación de los objetos de datos (los que permite la modificación).
Y finalmente, cuando el programa termina su ejecución, se libera el espacio de memoria que tenía asignado para que se vuelva a asignar a más ejecuciones.
Sap ABA variables.
Lo primero que hay que hacer en la codificación de un programa es declarar las variables, ya que es obligatorio que estén declaradas antes de su utilización.
Para declarar una variable se tiene que informar obligatoriamente de:
Nombre, usando la sentencia DATA o PARAMETERS.
Tipo, usando la sentencia TYPE.
Y opcionalmente:
Longitud, usando la sentencia LENGTH.
Valor Inicial, usando la sentencia VALUE.
Abap de declarar variables.
Para declara variables se pueden usar:
DATA, que se usa para declarar una variable y posteriormente un valor.
PARAMETERS, que se usa para introducir el valor de la variable por pantalla, será el usuario final el que pueda introducir el valor deseado por la pantalla.
Características en los nombres de las variables:
El primer carácter tiene que ser alfabético.
Los nombres de variable pueden tener un máximo de longitud de 30 caracteres.
No puede con los caracteres excepto: “( )”, “+”, “.”, “,” y “:”.
Recomendación de SAP:
No utilizar guiones, en su lugar usar subrayado.
No usar USING o CHANGING como nombres de variables.
La sentencia DATA se puede hacer en cualquier parte del programa, pero se recomienda declararla en la parte superior.
La longitud por defecto depende del tipo de dato.
El tipo por defecto es c (carácter).
El valor inicial para una variable numérica es 0.
El valor inicial para una variable de carácter es blanco.
Solo se puede inicializar los literales o constantes, las variables no se inicializan.
Tipos estándar ABAP.
ABAP es un lenguaje de programación que utiliza una alta variedad de datos y de tipos de datos. Posee tipos de datos elementales sobre los cuales se pueden crear otros muy complejos.
Los tipos estándar ABAP se dividen en dos grupos:
● Tipos completo, tienen una longitud fija.
● Tipos incompleto, la longitud de la variable se indica en el momento de su declaración.
Tipos de datos completos Abap.
TIPO DE DATOS ESTRUCTURA
D Tipo para fechas. Tiene el formato: AAAAMMDD. Tiene una longitud 8 (fija).
T Tipo para hora. Tiene el formato: HHMMSS Tiene una longitud 6 (fija).
I Tipo para entero. Tiene una longitud 4 (fija).
F Tipo para número de punto flotante Tiene una longitud 8 (fija).
DECFLOAT16 Tipo de número decimal de punto flotante. Tiene una longitud 8 (fija).
DECFLOAT34 Tipo de número decimal de punto flotante. Tiene una longitud 16 (fija).
STRING Tipo de cadena de caracteres. Tiene una longitud dinámica.
XSTRING Tipo para secuencia de bytes de longitud dinámica (cadena hexadecimal)
Tipos de datos incompletos Abap.
TIPO DE DATOS ESTRUCTURA
C Tipo para cadena de caracteres. Tiene una longitud variable, se especifica en su declaración.
N Tipo para cadena de caracteres numérica. Tiene una longitud variable, se especifica en su declaración.
X Tipo para secuencia de bytes (cadena hexadecimal). Tiene una longitud variable, se especifica en su declaración.
P Tipo para número empaquetado. Tiene una longitud variable, se especifica en su declaración. Se utiliza cuando queremos almacenar un valor numérico con decimales.
Sap Abap constantes y Literales.
A las constantes y a los literales no se pueden modificar su valor durante la ejecución del programa.
Se utilizar para evitar escribir valores literales en el programa. Aunque se puede escribir un valor entre comillas generalmente suele estar prohibido, se tiene que crear un literal o una constante y utilizarlos.
Para declarar una constante o un literal se usa la sentencia CONSTANTS:
CONSTANTS web(20) TYPE c VALUE 'www.mywebstudies.com'.
Variables del sistema Sap Abap.
El sistema de SAP dispone de 171 variables de sistema, y se informan:
Con el inicio de la sesión, como la variable UNAME, que se informa con el nombre de conexión del usuario,
Cuando se ejecuta un programa, como la variable BATCH, que indica si el programa se ha lanzado de forma online o batch.
Durante la ejecución del programa, como la variable SUBRC, que utiliza para saber si la ejecución de la sentencia anterior a terminado correctamente.
El listado de estas variables se puede ver en la transacción SE11- DICCIONARIO ABAP, en el tipo de dato SYST.
SENTENCIAS ARITMÉTICAS.
Asignar valor a variable Abap.
En ABAP se puede asignar un valor a un objeto de dos formas diferentes:
Usando la cláusula MOVE:
MOVE variable1 TO variable2.Usando el signo igual:
Variable2 = variable1.
En ambos casos la variable2 tendrá los mismos datos que variable1.
Clases de Abap sentencias aritméticas.
OPERACIÓN A REALIZAR PALABRA CLAVE
Sumar ADD
Restar SUBTRACT
Multiplicar MULTIPLY
Dividir DIVIDE
Cociente de una división. DIV
Resto de la división. MOD
Exponente **
Raíz cuadrada SQRT
Realización por asignación COMPUTE
Sentencia Abap COMPUTE.
Para la realización de operaciones aritméticas en ABAP no es obligatorio la utilización de comandos individuales, como ADD para la suma, SUBTRACT para la resta, etc.
Toda operación aritmética se puede realizar de dos formas:
Realizando la operación y asignándola con el carácter igual a una variable.
SUMA = 2 + 3.
TOTAL_PAGAR = IMPORTE * 1,20.Usando la palabra clave COMPUTE, que no es obligatoria, es igual que la forma anterior, pero incluyéndola. COMPUTE solo se puede usar para realizar operaciones aritméticas.
COMPUTE SUMA = 2 + 3.
COMPUTE TOTAL_PAGAR = IMPORTE * 1,20.
SENTENCIAS CON CARACTERES.
¿Qué es un carácter y una cadena de caracteres?
En programación cuando nos referimos a un carácter es cualquier símbolo que no se considera numérico, ya se han letras, símbolos, caracteres especiales e incluso números si van entre comillas. En programación ABAP cuando nos referimos a un número que va entre comillas, no lo considera tal como un valor numérico, sino como un carácter que visualmente es igual que un número.
Y una cadena de caracteres es un conjunto de caracteres, pueden ser de los siguientes tipos:
C -> CARÁCTER.
D -> FECHA.
T -> TIME.
STRING. -> STRING, cadena de caracteres con longitud variable.
N – NUMÉRICO ENTERO.
Abap operaciones aritméticas.
OPERACIÓN A REALIZAR PALABRA CLAVE
Unión CONCATENATE
Condensa CONDENSE
Remplaza REPLACE
Busca SEARCH
Desplaza SHIFT
Convertir a mayúsculas o minúsculas TRASLATE
Divide SPLIT
Longitud STRLEN
Sentencia CONCATENATE, Abap concatenar cadenas.
La sentencia CONCATENATE se usa para unir dos a más cadenas de caracteres, teniendo en cuenta la elimina los espacios finales de cada valor
Ejemplo:
CONCATENATE valor1 valor2 INTO variable1.
Esta sentencia tiene dos añadidos:
SEPARATED BY, donde elimina los espacios en blanco iniciales y finales de cada valor y separa los valores con el carácter indicado después del BY
CONCATENATE valor1 valor2 INTO variable1 SEPARATED BY “ “.RESPECTING BLANKS, que respeta todos los espacios en blanco de cada valor.
CONCATENATE valor1 valor2 INTO variable1 RESPECTING BLANKS.
Sentencia Sap Abap CONDENSE string.
La sentencia CONDENSE se utiliza para eliminar los espacios iniciales y finales de una cadena, además si la cadena tuviera más de un espacio en blanco entre las palabras solo dejaría uno.
CONDENSE variable1.
La sentencia CONDENSE tiene un añadido NO-GAPS, que lo que hace es eliminar absolutamente todos los espacios en blanco, iniciales, finales e intermedios de una cadena.
CONDENSE variable1 NO-GAPS.
Sentencia Abap REPLACE.
La sentencia REPLACE, se utiliza para remplazar uno o varios caracteres por uno o varios caracteres, teniendo en cuenta que solo remplaza el primer carácter encontrado.
REPLACE caracter1 WITH caracter2 INTO variable1.
Tiene un añadido ALL OCCURRENCES OF, que se usara cuando queremos que sustituya todos los caracteres encontrados y no solamente el primero.
REPLACE ALL OCCURRENCES OF caracter1 IN variable1 WITH caracter2.
Sentencia Abap SEARCH.
La sentencia SEARCH se utiliza para buscar una subcadena en una cadena y con la utilización de la variable del sistema SY-FDPOS sabremos cuantos caracteres hay antes de esa subcadena.
FORMATO:
SEARCH cadena. FOR subcadenaEJEMPLO:
SEARCH ‘MI NOMBRE ES JUAN’ FOR ‘JUAN’.
Después de la sentencia SEARCH, el sistema informa la variable SY-FDPOS con el número de caracteres que hay antes de la subcadena JUAN, que en este caso es 13.
Para conocer la posición donde empieza la subcadena JUAN, hay que sumar 1 al valor de la variable SY-FDPOS, obteniendo la posición 14.
Sentencia Abap SHIFT.
La sentencia SHIFT se utiliza para desplazar una subcadena de una cadena de caracteres hacia uno de los lados, teniendo en cuenta que se eliminan los caracteres desplazados y que la longitud de la cadena no varía.
La sentencia SHIFT tiene 4 formas de funcionamiento:
SHIFT gv_datos BY 1 PLACES LEFT, que desplaza hacia la izquierda los caracteres indicados.
SHIFT gv_datos BY 1 PLACES LEFT, que desplaza hacia la derecha los caracteres indicados.
SHIFT gv_datos LEFT DELETING LEADING ‘***’, que desplaza a la izquierda la subcadena indicada.
SHIFT gv_datos RIGHT DELETING TRAILING ‘***’, que desplaza a la derecha la subcadena indicada.
Sentencia Abap TRANSLATE.
La sentencia TRANSLATE se utiliza para convertir una cadena en mayúsculas o minúsculas.
Tiene dos formas:
TRANSLATE GV_DATOS TO LOWER CASE, transforma los caracteres de la variable GV_DATOS a minúsculas.
TRANSLATE GV_DATOS TO UPPER CASE, transforma los caracteres de la variable GV_DATOS a mayúsculas.
Sentencia Abap SPLIT.
La sentencia SPLIT se utiliza para dividir una cadena en subcadenas, a la cual tenemos que indicar que carácter se usara como identificador para las divisiones.
EJEMPLO:
SPLIT variable AT ‘ ‘(carácter identificativo de la división)INTO var1var2 var3.
Se puede sustituir las variables que contienen las subcadenas, por una tabla interna, en este caso cada registro contendrá una subcadena diferente.
EJEMPLO:
SPLIT variable AT ‘ ‘(carácter identificativo de la división) INTO TABLE nombre-tabla.
Sentencia Abap STRLEN.
La sentencia STRLEN se utiliza para saber la longitud de una cadena sin tener en cuenta los espacios en blanco finales.
EJEMPLO:
STRLEN( GV_DATOS ).
Trabajando con una parte de una cadena.
Para trabajar solo con una parte de la cadena podemos usar el añadido +I(L).
Donde “I”, es la posición inicial, teniendo en cuenta que ABAP empieza a contar desde el número 0, por lo que hay que restar uno si contamos desde el 1.
Donde L, es el número de caracteres con los que queremos trabajar.
Var1 = var2+3(5)-> se asigna desde la posicion3, y se pasan 5 caracteres.
Sentencia Abap ADD.
La suma en ABAP se puede realizar de 2 formas:
Utilizando el carácter “+”
Variable1 = variable1 + variable2.
Total = total + iva.Utilizando la palabra reservada ADD:
ADD variable2 TO variable1.
ADD iva TO total.
El resultado es igual para todas las formas, se está sumando el valor de la variable2 a la variable1.
Sentencia Abap SUBTRACT.
La resta en ABAP se puede realizar de 2 formas:
Utilizando el carácter “-”
Variable1 = variable1 - variable2.
Total = total – descuento.Utilizando la palabra reservada SUBTRACT:
SUBTRACT variable2 FROM variable1.
SUBTRACT descuento FROM total.
El resultado es igual para todas las formas, se está restando el valor de la variable2 a la variable1.
Sentencia Abap MULTIPLY.
La multiplicación en ABAP se puede realizar de 2 formas:
Utilizando el carácter “*”
Variable1 = variable1 * variable2.
Total = total * iva.Utilizando la palabra reservada MULTIPLY:
MULTIPLY variable2 BY variable1.
MULTIPLY total BY iva.
El resultado es igual para todas las formas, se está multiplicando el valor de la variable2 al valor la variable1.
Sentencia Abap DIVIDE.
La división en ABAP se puede realizar de 2 formas:
Utilizando el carácter “/”
Variable1 = variable1 / variable2.
Total = herencia / num_hijosUtilizando la palabra reservada DIVIDE:
DIVIDE variable1 BY variable2.
DIVIDE herencia BY num_hijos.
El resultado es igual para todas las formas, se está dividiendo el valor de la variable1 por el valor la variable2.
Sentencia Abap DIV.
Para saber el cociente de una división se usa la palabra reservada DIV
Cociente = dividendo DIV divisor.
Sentencia Abap MOD.
Para saber el resto de una división se usa la palabra reservada MOD.
Resto = dividendoMOD divisor.
Sentencia Abap exponencial.
Para saber el resultado de un exponente se usa el operado “**”.
Area = Lado ** 2.
Sentencia Abap SQRT.
Para saber la raíz cuadrada en ABAP se usa la palabra reservada SQRT.
Raiz_cuadrada = SQRT( variable1 ).
SENTENCIAS LÓGICAS.
Abap Clases de condiciones.
CONDICION CARÁCTER PALABRA
Igual = EQ
Diferente <> NE
Mayor > GT
Mayor igual >= GE
Menor < LT
Menor igual <= LE
O OR
Y AND
Operaciones lógicas Abap.
OPERACIÓN A REALIZAR PALABRA CLAVE
Bifurcación IF / ELSE / ENDIF.
Bifurcación múltiple CASE / ENDCASE.
Repetición. DO / ENDDO.
Repetición. WHILE / ENDWHILE.
Desplaza SHIFT
Convertir a mayúsculas o minúsculas TRASLATE
Divide SPLIT
Longitud STRLEN
Sentencia Sap Abap IF.
La sentencia IF se usa para ejecutar un código, si se cumple la condición, ejecuta el código que está en la palabra reservada IF y la palabra ENDIF.
IF gv_dia = ‘LUNES’.
WRITE ‘HOY ES LUNES’.
ENDIF.
Teniendo en cuenta que la sentencia IF no indica el final del programa, por lo que todo el código que está a continuación del ENDIF se ejecutara.
IF gv_dia = ‘LUNES’.
WRITE ‘HOY ES LUNES’.
ENDIF.
WRITE / ‘HAY QUE IR AL MEDICO’.
La salida de este código genera un mensaje indicando HOY ES LUNES y en la siguiente línea el mensaje HAY QUE IR AL MEDICO.
Sentencia Abap ELSE.
La sentencia ELSE se usa con la sentencia IF y se usa para ejecutar un bloque de código cuando no se cumple la condición de la sentencia IF.
IF gv_dia = ‘LUNES’.
WRITE ‘HOY ES LUNES’.
ELSE
WRITE ‘HOY NO ES LUNES’.
ENDIF.
Solo puede haber un ELSE por cada sentencia IF.
Sentencia IF ANIDADOS Abap.
Las sentencias IF, se pueden anidar unas dentro de otras. Para de esta forma controlar más opciones.
EJEMPLO:
IF GV_NUMERO = 1.
WRITE / ‘UNO’.
ELSE
IF GV_NUMERO = 2.
WRITE / ’DOS’.
ELSE.
WRITE / ’NÚMERO MUY GRANDE’.
ENDIF.
ENDIF.
La segunda sentencia IF, solo se evalúa si no se cumple la condición de la primera sentencia IF.
Y en el caso de que la segunda sentencia IF tampoco se cumpla se ejecutara la sentencia ELSE del segundo IF.
Sentencia Sap Abap CASE.
La sentencia CASE se utiliza para interpretar fácilmente los casos de una opción.
CASE GV_NUMERO.
WHEN 1.
WRITE: ‘UNO’.
WHEN 2.
WRITE: ‘DOS’.
WHEN OTHERS.
WRITE: ’NÚMERO MUY GRANDE’.
La sentencia CASE, equivale a evaluar la variable número, y los WHEN se usa para ejecutar el bloque de código que viene a continuación, si se cumple su condición.
Sentencia Abap DO.
La sentencia DO repite un bloque de código tantas veces como se indica en el clausula TIME.
DO 3 TIMES.
ADD 1 TO GV_NUMERO.
WRITE / ‘EL NÚMERO ES ‘, GV_NUMERO.
ENDDO.
El ejemplo anterior muestra por pantalla:
EL NÚMERO ES 1
EL NÚMERO ES 2
EL NÚMERO ES 3
Sentencia ABAP EXIT DO.
La sentencia EXIT, se utiliza dentro de la sentencia DO, y se utiliza para finalizar el bucle.
DO 3 TIMES.
ADD 1 TO GV_NUMERO.
IF GV_NUMERO = 2.
EXIT.
ENDIF.
WRITE / ‘EL NÚMERO ES ‘, GV_NUMERO.
ENDDO.
El ejemplo anterior muestra por pantalla:
EL NÚMERO ES 1
Aunque con la cláusula TIME se indique que se tiene que ejecutar 3 veces, al realizarse la segunda vuelta, se ejecuta la sentencia EXIT, la cual fuerza la finalización del bucle.
Sentencia ABAP CONTINUE.
La sentencia CONTINUE, se utiliza dentro de la sentencia DO, y se utiliza para ignorar el código que viene a su continuación, forzando que empiece una nueva vuelta.
DO 3 TIMES.
ADD 1 TO GV_NUMERO.
IF GV_NUMERO = 2.
CONTINUE.
ENDIF.
WRITE / ‘EL NÚMERO ES ‘, GV_NUMERO.
ENDDO.
El ejemplo anterior muestra por pantalla:
EL NÚMERO ES 1
EL NÚMERO ES 3
La sentencia CONTINUE, no provoca el fin del bucle.
Sentencia WHILE.
La sentencia WHILE, repite un bloque mientras se cumpla la condición indicada.
WHILE GV_NUMERO < 3.
ADD 1 TO GV_NUMERO.
WRITE / ‘EL NÚMERO ES ‘, GV_NUMERO.
ENDWHILE.
El ejemplo anterior muestra por pantalla:
EL NÚMERO ES 1
EL NÚMERO ES 2
EL NÚMERO ES 3
Dentro de la sentencia WHILE, se puede usar las sentencias EXIT y CONTINUE.
.
.