• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
  • Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
Twitter Linkedin Instagram

S4PCADEMY_Logo
  • Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
Twitter Linkedin Instagram
#groovy  ·  #json  ·  #sapci  ·  Integrationsuite  ·  sapbtp  ·  SAPCloudIntegration  ·  sapintegrationsuite  ·  Technical Articles

Cómo eliminar campos nulos y vacíos de un JSON en SAP CPI

By s4pcademy 


Hola, chicos,

Después de mucho tiempo sin escribir aquí, decidí tomarme unos minutos para compartir un código que usé recientemente en un proyecto y que no pude encontrar aquí en la comunidad.

Como no encontré nada relacionado, básicamente, el código que voy a compartir tiene una funcionalidad simple y muy solicitada en algunos proyectos, limpiando mensajes JSON, eliminando campos nulos y en blanco (Ej. «campo» : «» o «campo»: nulo.).

import com.sap.gateway.ip.core.customdev.util.Message
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper

def Message processData(Message message) {
    def body = message.getBody(String.class)
    def jsonSlurper = new JsonSlurper()
    def jsonObject = jsonSlurper.parseText(body)
    def cleanedObject = removeEmptyFields(jsonObject)
    def jsonBuilder = new JsonBuilder(cleanedObject)
    message.setBody(jsonBuilder.toPrettyString())
    return message
}

def removeEmptyFields(def object) {
    if (object instanceof Map) {
        object.entrySet().removeAll { it.value == null || (it.value instanceof String && it.value.trim() == "") }
        object.collectEntries { [it.key, removeEmptyFields(it.value)] }
    } else if (object instanceof List) {
        object.collect { removeEmptyFields(it) }.findAll { it != null }
    } else {
        object
    }
}

Ahora vamos a probarlo, que es muy simple como se muestra a continuación:

testículo

Eso es todo chicos, me alegro de haberlos ayudado y comenten si están usando el código en sus proyectos.

¡Adiós!



Source link


camposcomoCPIeliminarJSONnulosSAPvacíos

Artículos relacionados


Technical Articles
Manejo de direcciones múltiples para documentos de ventas en SAP S/4HANA Cloud
migo  ·  MIGO print output indicator  ·  Set MIGO print output indicator  ·  Technical Articles
Cómo configurar automáticamente el indicador «Imprimir a través del control de salida» en la transacción MIGO
Technical Articles
Aprendizaje de tipos de usuarios de licencias en SAP SuccessFactors Learning

Deja tu comentario Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

IPS: Disponibilidad de conectores del sistema
Previo
仓位字段在IM管理中的应用 | Blogs de SAP
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.
Cookies Para que este sitio funcione adecuadamente, a veces instalamos en los dispositivos de los usuarios pequeños ficheros de datos, conocidos como cookies. La mayoría de los grandes sitios web también lo hacen.
Aceptar
Cambiar ajustes
Configuración de Cookie Box
Configuración de Cookie Box

Ajustes de privacidad

Decida qué cookies quiere permitir. Puede cambiar estos ajustes en cualquier momento. Sin embargo, esto puede hacer que algunas funciones dejen de estar disponibles. Para obtener información sobre eliminar las cookies, por favor consulte la función de ayuda de su navegador. Aprenda más sobre las cookies que usamos.

Con el deslizador, puede habilitar o deshabilitar los diferentes tipos de cookies:

  • Bloquear todas
  • Essentials
  • Funcionalidad
  • Análisis
  • Publicidad

Este sitio web hará:

Este sitio web no:

  • Esencial: recuerde su configuración de permiso de cookie
  • Esencial: Permitir cookies de sesión
  • Esencial: Reúna la información que ingresa en un formulario de contacto, boletín informativo y otros formularios en todas las páginas
  • Esencial: haga un seguimiento de lo que ingresa en un carrito de compras
  • Esencial: autentica que has iniciado sesión en tu cuenta de usuario
  • Esencial: recuerda la versión de idioma que seleccionaste
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location
  • Recuerde sus detalles de inicio de sesión
  • Esencial: recuerde su configuración de permiso de cookie
  • Esencial: Permitir cookies de sesión
  • Esencial: Reúna la información que ingresa en un formulario de contacto, boletín informativo y otros formularios en todas las páginas
  • Esencial: haga un seguimiento de lo que ingresa en un carrito de compras
  • Esencial: autentica que has iniciado sesión en tu cuenta de usuario
  • Esencial: recuerda la versión de idioma que seleccionaste
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location
Guardar y cerrar