Ver Mensaje Individual
  #2  
Viejo 12/06/19, 21:40:52
Feliu Feliu is offline
Junior Member
 
Fecha de Ingreso: jun 2019
Mensajes: 8
Buenas practicas

Hola estimado, bienvenido al mundo SAP, un cordial saludo.

Te voy a presentar mi respuesta de forma sencilla y desde mi punto de vista para un mejor entendimiento.

1) Primeramente DATA es una sentencia reservada de SAP en el lenguaje ABAP para la declaración de variables, constantes, etc.

Esta sentencia debe utilizarse al principio de cada declaración que corresponda.

2) La palabra reservada TYPE es utilizada en el lenguaje ABAP al momento de la declaración para hacer referencia un elemento de dato, clase, tabla etc.

Esta puede estar acompañada de REF TO, TABLE OF, etc. (Según el caso).

3) La palabra reservada LIKE se utilizaba anteriormente, ahora ha quedado obsoleta por lo que no es buena practica utilizarla, sin embargo encontraras programas en los cuales aún se utilizan (Lo recomendable, utilizar TYPE para todo, a menos que SAP te sugiera LIKE)

4) El agregado WHL se utiliza para indicar que una tabla interna tendrá una cabecera, por lo que dependiendo del caso puede ser util para el acceso a los datos contenidos en la misma (Te recomiendo ubicar ejemplos donde puedas ver su utilización).

Ahora bien, la manera correcta de crear el TYPE y realizar tu búsqueda es la siguiente:

"Declaracion del type
TYPES: BEGIN OF ty_ejemplo,

ebeln TYPE ekko-ebeln, "Doc.compras
ejemplo2 TYPE c LENGTH 10, "Ejemplo
ejemplo3 TYPE c LENGTH 10, "Ejemplo

END OF ty_ejemplo.

"Declaracion de tabla interna y work-area
DATA: it_datos TYPE STANDARD TABLE OF ty_ejemplo,
wa_datos TYPE ty_ejemplo.

"Procedemos a efectuar una consulta
SELECT SINGLE ebeln
FROM ekko
INTO CORRESPONDING FIELDS OF TABLE it_datos
WHERE bukrs EQ '1010'.

*Se utiliza la sentencia INTO CORRESPONDING FIELDS OF TABLE para que los registros obtenidos se ubiquen en su respectivo campo dentro de la tabla interna, debido a que puede contener varios campos que no están incluidos en tu select

*ENDSELECT es obsoleto

*Se recomienda utilizar palabras reservadas de SAP para los filtros WHERE como por ejemplo EQ, NE, IN, etc.

*SINGLE es un agregado a tu búsqueda para indicarle a SAP que vas a realizar la búsqueda de solamente ese campo en especifico.


PD: Una recomendación personal, y esto ya va por parte de cada quien, es la forma en la que llamamos nuestras tablas internas y estructuras.

Actualmente muchos programadores llaman tus tablas y estructuras de esta manera:

Tablas internas:

IT_EJEMPLO
TI_EJEMPLO
GT_EJEMPLO
LT_EJEMPLO

Estructuras:
GS_EJEMPLO
LS_EJEMPLO

Donde GT es "Global table", GS "Global Estruct" LT "Local Table" LS "Local Estruct".

Saludos, espero te siva de orientación, aquí en el foro encontraras profesionales que pueden darte excelentes referencias.
Responder Con Cita