ABAP: Leer variable de otro programa

Si necesitamos leer datos desde un programa, que no es el programa en el que estamos en este momento podemos hacerlo con Field Symbols de la siguiente forma.

Pasos

  • Declarar Field Symbol de tipo ANY si es una variable o del tipo ANY TABLE si es una tabla interna.
  • Indicar el programa desde donde queremos leer la variable entre paréntesis y a continuación el nombre de la variable entre comillas simples utilizando ASSIGN

Código

En nuestro caso vamos a leer del programa SAPLMBWL la tabla interna XMSEG[ ] y asignaremos el contenido de la misma al Field Symbol <fs_xmseg>

FIELD-SYMBOLS: <fs_xmseg> TYPE ANY TABLE.

ASSIGN ('(SAPLMBWL)XMSEG[]') TO <fs_xmseg>.

Para ver mas tutoriales de SAP, pulse en el siguiente enlace: Listado de tutoriales

ABAP: Cantidad de registros de una tabla interna

Para averiguar la cantidad de registros de una tabla interna utilizaremos DESCRIBE TABLE de la siguiente forma.

 

DESCRIBE TABLE

  • Declararemos una variable de tipo numérica donde se almacenará el número de líneas de la tabla, en nuestro caso LV_LINES
  • En DESCRIBLE TABLE indicaremos la tabla interna de la que queremos conocer el número de líneas e indicaremos la variable donde almacenar el número de líneas

 

Código

DATA: lv_lines TYPE i.

DESCRIBE TABLE li_tabla LINES lv_lines.

IF lv_lines > 0.

ENDIF.

Para ver mas tutoriales de SAP, pulse en el siguiente enlace: Listado de tutoriales

ABAP: Modificar contenido de variante

Con la función estándar de RS_CHANGE_CREATED_VARIANT modificaremos el contenido de la variante.

 

Parametros de entrada

  • CURR_REPORT: Nombre del report donde está la variante que queremos modificar
  • CURR_VARIANT: Nombre de la variante
  • VARI_DESC: Descripción de la variante
  • VARI_CONTENTS: Tabla interna con tel contenido de la variante

 

Función

DATA: lv_programa  TYPE RSVAR-REPORT,
      lv_variante  TYPE RSVAR-VARIANT,
      lw_vari_desc TYPE VARID,
      li_valtab    TYPE STANDARD TABLE OF RSPARAMS.

CALL FUNCTION 'RS_CHANGE_CREATED_VARIANT'
     EXPORTING
        CURR_REPORT               = lv_programa
        CURR_VARIANT              = lv_variante
        VARI_DESC                 = lw_vari_desc
     TABLES
        VARI_CONTENTS             = li_valtab                                  
     EXCEPTIONS
        ILLEGAL_REPORT_OR_VARIANT  = 1
        ILLEGAL_VARIANTNAME        = 2
        NOT_AUTHORIZED             = 3
        NOT_EXECUTED               = 4
        REPORT_NOT_EXISTENT        = 5
        REPORT_NOT_SUPPLIED        = 6
        VARIANT_DOESNT_EXIST       = 7
        VARIANT_LOCKED             = 8
        SELECTIONS_NO_MATCH        = 9
        OTHERS                     = 10.

 

Pasos a seguir

1. Obtener el conteido de la variante que queremos modificar con la función RS_VARIANT_CONTENTS, puedes como utilizar esta función aqui

2. Realizar las modificaciones requeridas en la tabla interna obtenida de la función anterior.

3. Ejecutar la función RS_CHANGE_CREATED_VARIANT indicandole el programa, variante y la tabla interna con el contenido modificado.

 

Para ver mas funciones de SAP pulse en el siguiente enlace: Listado de funciones