Loading

Cuando se usa la función IIF con ATTR se obtienen resultados NULL inesperados

Fecha de publicación: Oct 24, 2022
Descripción
Al usar ATTR() en la declaración condicional de una función IIF(), a veces los resultados arrojan valores NULL en función del nivel de detalle de la vista.

Cause

La función IIF() permite al usuario especificar resultados concretos para cuando una declaración condicional se evalúa como TRUE, FALSE y opcionalmente NULL. Cuando la declaración condicional se evalúa como NULL y no se especifica ningún resultado, la expresión devolverá NULL.

La función ATTR() devuelve un valor NULL si el primer valor de una partición no coincide con el último. Por ejemplo, ATTR( [Región] ) será NULL a menos que [Región] esté en la vista. Cuando parte de una declaración condicional es NULL, toda la declaración se evalúa como NULL.
Solución

Opción 1: Utilice MIN() en lugar de ATTR()

Por ejemplo, el cálculo siguiente:
IIF( ATTR( [Regiones] ) = "Central", SUM( [Ventas] ), SUM( [Ganancias] ))

Se convertiría en:
IIF( MIN( [Regiones] ) = "Central", SUM( [Ventas] ), SUM( [Ganancias] ))

Opción 2: Especifique cuál debería ser el resultado cuando la declaración condicional devuelva NULL

Por ejemplo, el cálculo siguiente:
IIF( ATTR( [Región] ) = "Central", SUM( [Ventas] ), SUM( [Ganancias] ))

Se convertiría en:
IIF( ATTR( [Región] ) = "Central", SUM( [Ventas] ), SUM( [Ganancias] ), SUM( [Cantidad] ))
Número del artículo de conocimiento

001473300

 
Cargando
Salesforce Help | Article