Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
cancel
Showing results for 
Search instead for 
Did you mean: 
fmunozb
Active Participant


Set de datos en SAP usándolos con ABAP


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 cualquier 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.
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,
lwa_dauat LIKE LINE OF lr_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.

Transporte


Para incuir un set de datos en una orden de transporte se debe ir a la opción:



O ejecutar la transacción GCTS, lo cual llevaria a la siguiente pantalla:



Se selecciona la opción Sets, se digita el número del set que se quiere tansportart:



Se selecciona el set:



y por último la orden en la que se desea enviar:



5 Comments