Introducción
Un set de datos es un objeto en SAP el cual se usa para agrupar conjuntos o rangos de valores. Para este artículo vamos a enfocarnos en los set de datos que podemos usar para parametrizar información en algún programa en especial. En el ejemplo que voy a mostrar uso un set de datos para crear parametrizaciones en el sistema sin necesidad de crear tablas.
Ventajas
- Se crean fácilmente, cada vez que se crea un set de datos este es independiente de otros.
- Pueden ser usados transversalmente en el sistema, es decir funcionan para culaquier módulo.
- Permiten que la información se centralice y se modifique con facilidad.
Transacciones para su uso
- GS01: Usada para la creación de set de datos
- GS02: Usada para la modificación de set de datos
- GS03: Usada para la visualización de set de datos
Ejemplo
El siguiente ejemplo muestra la manera como se hace la consulta del set de datos y se extrae la información para ser usada en un programa ABAP.
El
siguiente ejemplo muestra la manera como se hace la consulta del set de
datos y se extrae la información para ser usada en un programa ABAP.
DATA: lit_formula_lines TYPE TABLE OF rgsbf,
lit_set_lines_basic TYPE TABLE OF rgsbv,
lit_set_lines_data TYPE TABLE OF rgsb3,
lit_set_lines_multi TYPE TABLE OF rgsb2,
lit_set_lines_single TYPE TABLE OF rgsb1,
* Estructuras creadas para ser usadas si es necesario
lwa_formula_lines TYPE rgsbf,
lwa_set_lines_basic TYPE rgsbv,
lwa_set_lines_data TYPE rgsb3,
lwa_set_lines_multi TYPE rgsb2,
lwa_set_lines_single TYPE rgsb1,
* Rango creado para hacer consultas o para ser usado como parte de una sentencia lógica
lr_dauat TYPE RANGE OF afpo-dauat.
* Esta función trae el rango llamado ZORDENES_DESARROLLO
CALL FUNCTION 'G_SET_FETCH'
EXPORTING
setnr = '0000ZORDENES_DESARROLLO'
TABLES
formula_lines = lit_formula_lines
set_lines_basic = lit_set_lines_basic
set_lines_data = lit_set_lines_data
set_lines_multi = lit_set_lines_multi
set_lines_single = lit_set_lines_single
EXCEPTIONS
no_authority = 1
set_is_broken = 2
set_not_found = 3
OTHERS = 4
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT lit_set_lines_basic INTO lwa_set_lines_basic.
lwa_dauat-sign = 'I'.
lwa_dauat-option = 'BT'.
lwa_dauat-low = lwa_set_lines_basic-from.
lwa_dauat-high = lwa_set_lines_basic-to.
APPEND lwa_dauat TO lr_dauat.
ENDLOOP.
DATA: lit_formula_lines TYPE TABLE OF rgsbf,
lit_set_lines_basic TYPE TABLE OF rgsbv,
lit_set_lines_data TYPE TABLE OF rgsb3,
lit_set_lines_multi TYPE TABLE OF rgsb2,
lit_set_lines_single TYPE TABLE OF rgsb1,
* Estructuras creadas para ser usadas si es necesario lwa_formula_lines TYPE rgsbf,
lwa_set_lines_basic TYPE rgsbv,
lwa_set_lines_data TYPE rgsb3,
lwa_set_lines_multi TYPE rgsb2,
lwa_set_lines_single TYPE rgsb1,* Rango creado para hacer consultas o para ser usado como parte de una sentencia lógica lr_dauat TYPE RANGE OF afpo-dauat.
* Esta función trae el rango llamado ZORDENES_DESARROLLOCALL FUNCTION 'G_SET_FETCH'
EXPORTING
setnr = '0000ZORDENES_DESARROLLO'
TABLES
formula_lines = lit_formula_lines
set_lines_basic = lit_set_lines_basic
set_lines_data = lit_set_lines_data
set_lines_multi = lit_set_lines_multi
set_lines_single = lit_set_lines_single
EXCEPTIONS
no_authority = 1
set_is_broken = 2
set_not_found = 3
OTHERS = 4
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT lit_set_lines_basic INTO lwa_set_lines_basic.
lwa_dauat-sign = 'I'.
lwa_dauat-option = 'BT'.
lwa_dauat-low = lwa_set_lines_basic-from.
lwa_dauat-high = lwa_set_lines_basic-to.
APPEND lwa_dauat TO lr_dauat.
ENDLOOP.