ABAP: Pasar de estructura a JSON

Para pasar el contenido de una estructura a JSON necesitaremos crear una copia de la clase estándar CL_TREX_JSON_SERIALIZER y crear los métodos ZRECURSE y ZSERIALIZE.

Es necesario realizar esta modificación para que el nombre del campo y el valor se incluyan entre comillas dobles, la clase estándar solo incluye entre comillas dobles el valor, con esta modificación obtendremos el siguiente resultado:

Antes

{ Nombre_campo: “Valor”}

 

Después

{ "Nombre_campo": “Valor”}

Leer más

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

SAP: ¿Qué es una BTE?

Las BTE’s (Business TransactionsEvents, o eventos de las transacciones de negocio) son un tipo de extensión para el módulo FI de SAP (para SD están los User-Exits de la transacción CMOD), SAP creó las BTE’s para poder adaptar el módulo FI del sistema SAP.

Las BTE’s se basan en los siguientes principios:

  • Los diseñadores de aplicaciones deben definir la interfase en un módulo de función
  • Una tabla de asignación es leída en el código generado
  • Los módulos de usuario se llaman de manera dinámica.

 

Diferencia entre BADI y BTE

Los conceptos de las BADI’s y las BTE’s son similares en algunos aspectos, pero se diferencian en los diferentes puntos:

  • Las BTE’s sólo pueden utilizarse para ampliar el código estándar de SAP (no es posible ampliar interfases como con las BADI’s).
  • Las BTE’s son sólo de 3 niveles: SAP, Partners y Clientes, las BADI’s que soportan múltiples capas).
  • En las BTE’s se utilizan funciones para ampliar el código SAP; en las BADI’s se usan Objetos ABAP (ABAP Objects).

Leer más