Uso de tablas de rangos

Objectives

After completing this lesson, you will be able to:
  • Cree una clase de tabla de rangos.
  • Cree una tabla de rangos.
  • Rellene una tabla de rangos con datos.
  • Explique la diferencia entre una clase de tabla de rangos y una tabla de rangos.
  • Utilice tablas de rangos en planificaciones de precios.

Introducción a las tablas de rangos

Al tratar con intervalos numéricos, las tablas de asignación no pueden ayudar. Supongamos que desea asignar diferentes precios a paquetes de diferentes intervalos de peso. Debería determinar primero el intervalo con un componente y, con el intervalo conocido, acceder a una tabla de asignación y obtener el precio de ella.

Las tablas de rangos proporcionan soporte para gestionar intervalos numéricos dentro de la propia tabla. Con estas tablas puede definir las áreas de peso o sus paquetes en la tabla y asignar un precio diferente para cada intervalo. Veamos cómo funciona esto.

Clase de tabla de rangos

Al igual que para las tablas de asignación, la estructura para las tablas de rangos se define por separado de su contenido. Las columnas de entrada y salida, así como los tipos de datos de las columnas de salida, se definen en una "clase de tabla de rangos". Una clase de tabla de rangos se compone de:

  • Decisión de si el límite superior de los intervalos numéricos se considera parte del intervalo ("inclusivo") o no ("exclusivo")
  • Decisión de si el límite superior del último intervalo es "limitado" o "no limitado"
  • De 0 a 5 columnas de entrada del tipo de datos "cadena"
  • De 1 a 15 columnas de salida del tipo "cadena", "Número individual", "Número acumulativo" o "Número acumulativo del tamaño del rango"

La siguiente figura muestra una clase de tabla de rangos en la herramienta principal.

Ejemplo de una clase de tabla de rangos en la herramienta principal.

Existen cuatro tipos de datos para valores de salida numéricos:

Cadena

Este tipo de datos simplemente contiene una cadena como salida. La idea es admitir casos de uso en los que las propiedades de cadena estén asociadas a intervalos de números de la siguiente forma:

  • A los paquetes con un peso superior a 0 y hasta 1 kg se les asigna la clase de peso "ligero".
  • A los paquetes con un peso superior a 1 y hasta 3 kg se les asigna la clase de peso "medio".
  • A los paquetes con un peso superior a 3 y hasta 20 kg se les asigna la clase de peso "pesado"
Número individual

Este tipo de datos proporciona un número individual como salida. Este puede ser el precio de un paquete que cae en una clase de peso específica. La idea es admitir casos de uso en los que los precios se definen de la siguiente manera:

  • Los paquetes con un peso superior a 0 y hasta 1 kg cuestan 12,- €
  • Los paquetes con un peso superior a 1 kg y hasta 3 kg cuestan 15,- €
  • Los paquetes con un peso superior a 3 kg y hasta 20 kg cuestan 25,- €
Número acumulado

Una propiedad de número acumulado suma los números de intervalos en los que se solapa el valor numérico proporcionado, lo que suele excluir el rango en el que cae la ponderación. La idea es admitir casos de uso en los que los precios se definen de la siguiente manera:

  • El primer kg de un paquete cuesta 12,- €
  • Los próximos 2 kg cuestan 3,- €
  • Los próximos 17 kg cuestan 10,- €
Número acumulado de tamaño de rango

Este tipo de datos es similar al tipo de datos "número acumulado", ya que resume los intervalos afectados por el valor en comparación con los intervalos. Sin embargo, además de la suma de todos los precios, también se tiene en cuenta el tamaño del rango de todos los intervalos afectados.

La idea es admitir casos de uso en los que los precios se definen de la siguiente manera:

  • Los primeros kg cuestan 6,- € por kg
  • Los siguientes 2 kg cuestan 1,50 € por kg
  • Los próximos 17 kg cuestan 2,- € por kg

Creación de tabla de rangos

Configuración de un introductor de tabla de rangos

La configuración del introductor de tablas de rangos es como la utilizada para leer de las tablas de asignación. En primer lugar, se debe seleccionar una clase de tabla de rangos. La clase define qué columnas de entrada deben asignarse a las propiedades.

Configuración de un introductor de tabla de rangos

Las siguientes funciones numeradas se relacionan con la figura anterior:

  1. Una vez seleccionada una clase de tabla de rangos, se puede leer un ID de tabla de rangos específico de un parámetro en tiempo de ejecución o se puede proporcionar como una selección de tabla específica en tiempo de diseño.
  2. La fecha de referencia es allí para elegir la versión de tabla correcta de la cronología de la tabla. La versión de tabla siempre será la válida en la fecha y hora indicadas por la fecha de referencia.
  3. La propiedad de entrada de rango es la propiedad de número que contiene el valor que desea pasar a la tabla de rangos. Este valor se comparará con los intervalos de tablas para seleccionar el intervalo correcto y derivar los valores de salida.
  4. La sección "Asignación de propiedades de entrada" solicita que se asigne una propiedad compatible con el tipo a cada columna de entrada de la tabla, de la misma manera que lo conoce desde el introductor de tablas de asignación.

Para las propiedades de salida, puede ver que hay una diferencia significativa con el introductor de tablas de asignación: Hay dos tablas con propiedades de salida.

  • La tabla superior denominada "Asignación de propiedades generadas" enumera todas las columnas que ha definido como columnas de salida en su clase de tabla de rangos.
  • La diferencia aquí es que cada propiedad de línea/salida tiene dos celdas al final. Cada celda espera que introduzca un nombre de propiedad en el que se escriba el valor de salida. Entonces, ¿por qué hay dos nombres de propiedad de salida cuando solo desea calcular un valor de salida?

En función del tipo de datos que tenga su propiedad de salida, solo importa uno de los dos nombres de propiedad de salida. Veamos el contenido de los dos nombres de propiedades de salida en función de cada tipo de datos disponible para su propiedad de salida.

Rellenado de tablas de rangos con datos

Número individual

Si ha seleccionado Número individual como tipo de datos de propiedad de salida, la primera columna Nombre de propiedad generada es la única disponible. No puede introducir ningún valor en la segunda columna Nombre de propiedad acumulativa generada. Como la columna de salida de la tabla de rangos del número individual del tipo de datos solo proporcionará el valor de salida de la columna de la tabla de rangos determinado por la propiedad numérica, no tiene sentido definir un nombre de propiedad que contenga cualquier valor calculado acumulativamente. Por lo tanto, la segunda columna está desactivada.

Ejemplo

Recordemos los ejemplos anteriores para los diferentes tipos de datos de columna de salida y creemos un ejemplo correspondiente. Supongamos que los siguientes rangos están definidos para una propiedad de salida de número individual.

Rangos definidos para una propiedad de salida de número individual, ejemplo 1

Rango de ponderaciónPrecio del paquete (valor numérico individual)
[0;1]12
[1;3]15
[3;20]25

Cuando se pasa un peso de paquete numérico de 7 kg al componente comparador, el resultado de la propiedad de número único es 25, ya que la cantidad de 7 está entre 3 y 20. No se realiza ningún otro cálculo. Como resultado, solo introducirá un nombre de propiedad en la columna Nombre de propiedad generada. Aquí se ha introducido el nombre Precio. En nuestro ejemplo, después de comparar el peso del paquete con su tabla de rangos, estará disponible una propiedad llamada Precio, que contiene el valor 25. La columna Nombre de propiedad acumulativa generada no se puede utilizar porque no se realiza ningún cálculo acumulativo.

Ejemplo, paso 1

Número acumulado

Supongamos que los precios de los paquetes son un poco diferentes. Ahora el precio del paquete se define por intervalo de peso:

  • El primer kg de un paquete cuesta 12,- €
  • Los próximos 2 kg cuestan 3,- €
  • Los próximos 17 kg cuestan 10,- €

La tabla tendría este aspecto (preste atención a la modificación del tipo de datos de la columna de salida):

Rangos definidos para una propiedad de salida de número individual, ejemplo 2

Rango de ponderaciónPrecio del paquete (valor numérico individual)
[0;1]12
[1;3]3
[3;20]10

Ahora hay un valor acumulado que se debe calcular. Ahora puede fijar ambos nombres de propiedad de salida:

Ejemplo, paso 2

Aquí, el campo Nombre de propiedad generado se fija en Precio, mientras que el Nombre de propiedad acumulativa generada se fija en Precio acumulado. Como resultado, SAP Convergent Charging creará dos propiedades con diferentes valores. Supongamos que envía de nuevo un valor de peso de 7 kg al comparador de tablas. Después de la comparación de la tabla de rangos, estarán disponibles dos nuevas propiedades en lugar de solo una:

  • La propiedad Precio acumulado contendrá el valor 15. El sistema determinará el intervalo alcanzado por la cantidad. Aquí es el tercer intervalo. A continuación, suma los valores de la columna de salida de todos los intervalos anteriores al que se ha alcanzado. Estos son los valores de columna del primer y segundo intervalo: 12 + 3 = 15.
  • La propiedad Price aún contendrá el precio encontrado en el intervalo alcanzado por el peso del paquete que ha enviado al comparador. El valor de ponderación es 7, por lo que se da un acierto al tercer intervalo. Está asociado con un precio de 10. Por lo tanto, el precio de la propiedad tendrá un valor de 10.

Como puede ver, ambas propiedades de salida aún deben sumarse para obtener el precio total a cobrar: 15 + 10 = 25.

Número acumulado de tamaño de rango

Supongamos que el precio es diferente por intervalo, pero indicado por kg en lugar de por intervalo de peso:

  • Los primeros kg cuestan 6,- € por kg
  • Los siguientes 2 kg cuestan 1,50 € por kg
  • Los próximos 17 kg cuestan 2,- € por kg

La tabla de rangos resultante tendría este aspecto (de nuevo se ha modificado el tipo de datos de salida).

Rangos definidos para una propiedad de salida de número individual, ejemplo 3

Rango de ponderaciónPrecio del paquete (valor numérico individual)
P1 0;1]6
[1;3]1,5
? 3;20]2

De nuevo, se deben fijar ambos nombres de propiedad de salida. Aquí se han seleccionado los mismos nombres que para el ejemplo anterior. Pero recuerde que puede proporcionar cualquier nombre que desee a las propiedades generadas.

Ejemplo, paso 3

Supongamos que se vuelve a pasar un valor de 7 kg a la tabla, de modo que una vez más se alcanza el tercer intervalo. Como se deben fijar ambos nombres de propiedad generados, se calculan dos propiedades de salida:

  • Para la propiedad "Precio acumulado" se determinan todos los intervalos que son anteriores al acierto de intervalo por el número pasado a la tabla de rangos. Como el número 7 significa que se ha alcanzado el tercer intervalo, se seleccionan el primero y el segundo.
  • No se multiplica el valor de la columna de salida por el tamaño del intervalo para cada uno de estos intervalos. Para el primer intervalo esto significa.
  • Para el segundo intervalo, esto significa
  • A continuación, se calcula la suma de estos productos:
  • Por lo tanto, la propiedad "Precio acumulado" contendrá el valor 9.
  • Para la propiedad "Precio", el valor será de nuevo el valor de salida del intervalo alcanzado por el valor numérico pasado a la tabla de rangos. Como el valor es 7, se alcanza el tercer intervalo. Su valor de salida es 2, por lo que el valor de la propiedad "Precio" es 2.

Si observa los resultados, aún no está del todo en el resultado deseado. Nuestros precios debían funcionar así:

  • Los primeros kg cuestan 6,- € por kg
  • Los siguientes 2 kg cuestan 1,50 € por kg
  • Los próximos 17 kg cuestan 2,- € por kg

Siguiendo esta lógica, un peso del paquete de 7 kg debería dar como resultado

  1. 6,- € para los primeros kg
  2. 3,- € para los próximos 2 kg (cada kg va por 1,50 €)
  3. 8,- € para los 4 kg restantes (cada kg va para 2,- €).

Esto totaliza hasta 17,- €.

La comparación de la tabla de rangos llegó a 9,- para la propiedad "Precio acumulado" y 2,- para la propiedad "Precio". La suma es de 11,- € por lo que, claramente le faltan 6,- €, ya que el último intervalo no tiene en cuenta la cantidad. ¿Qué falta?

Aquí es donde la tabla inferior etiquetada Propiedades calculadas se vuelve importante.

Cada introductor de tabla de rangos crea un conjunto de propiedades estándar independientemente de las columnas de salida que proporcione su tabla de rangos. Estas propiedades están ahí para proporcionar flexibilidad al usuario, de modo que se pueda admitir una variedad de modelos de cálculo de precios más allá de los que se enumeran aquí. La siguiente tabla proporciona una lista de estas propiedades junto con una explicación de su significado. Necesitarás uno de ellos.

Lista de propiedades junto con una explicación de su significado

Valor calculadoSignificado
Límite inferior del rangoContiene el límite inferior del rango que se ha alcanzado, si está disponible.
Límite superior del rangoContiene el límite superior del rango que se ha alcanzado, si está disponible.
Tamaño de rangoContiene el tamaño de un rango. Por lo general, se calcula como <UPPER_BOUND_OF_RANGE> - <LOWER_BOUND_OF_RANGE>.
Prorrateo en rango

Contiene un factor que varía entre 0 y 1 que indica la posición relativa del valor numérico dentro de los límites del intervalo, donde un valor más cercano a 0 significa que el valor se encuentra más hacia el límite inferior y un valor más cercano a 1, lo que significa que el valor se encuentra más hacia el límite superior.

Ejemplo:

Un valor de 17 en comparación con un rango de 10;20] daría lugar a un valor de 0,7. Se calcula como (17-10):(20-10) o más generalmente como (<NUMBER_VALUE> - <LOWER_BOUND_OF_RANGE>) : (<UPPER_BOUND_OF_RANGE> - <LOWER_BOUND_OF_RANGE>

Valor más allá del límite inferior

Esta es la distancia del valor numérico de su límite inferior.

Ejemplo:

Un valor de 17 en comparación con un rango de 10;20] daría lugar a un valor de 7, ya que 17 – 10 es 7 o más generalmente <NUMBER_VALUE> - <LOWER_BOUND_OF_RANGE>

Valor más allá del límite superior

Esta propiedad contiene la distancia del valor numérico y el límite superior del último valor no limitado. Como resultado, esta propiedad solo se puede calcular para clases de tabla de rangos limitados.

Ejemplo:

Un valor de 27 comparado con un último intervalo de 10;20] daría lugar a un valor de 7, ya que 27 – 20 = 7 o más generalmente <NUMBER_VALUE> - <UPPER_BOUND_OF_LAST_RANGE >

Para su propósito, necesita la propiedad calculada denominada Valor más allá del límite inferior. Para el peso del paquete de 7 kg, se da un acierto al tercer intervalo. Su límite inferior es 3. La diferencia entre 7 kg y 3 kg es 4 kg. Estos 4 kg deben multiplicarse por el valor de propiedad de salida del intervalo, que es 2,- €. El producto de 2,- € y 4 kg totaliza hasta los 8,- € faltantes

Ahora puede totalizar los totales de todos los intervalos:

  1. 6,- € para los primeros kg
  2. 3,- € para los próximos 2 kg (cada kg va por 1,50 €)
  3. 8,- € para los 4 kg restantes (como acaba de calcular)

La suma es de 17,- €, como se esperaba.

Puede utilizar las propiedades calculadas como desee. Sin embargo, no todas las propiedades están disponibles en cada rama. La siguiente tabla muestra para qué sucursales está disponible cada propiedad.

Sucursales y propiedades

  <property> está por debajo del primer límite<property> está en un rango<property> encontrado en el último rango sin límite<property> está por encima del último límite definido
 Límite inferior del rangoEs igual a 0Es igual al límite inferior del rango seleccionado.Es igual al límite inferior del rango seleccionado.Es igual al último límite superior.
Propiedad calculadaLímite superior del rangoEs igual a 0Es igual al límite superior del rango seleccionado.Es igual al último límite superior.
Tamaño de rangoEs igual a 0Límite superior del rango - Límite inferior del rango.Es igual al último límite superior.
 Prorrateo en rangoValor fuera del límite inferior/tamaño del rango
 Valor más allá del límite inferiorDiferencia entre el límite inferior del rango y el valor de la propiedad de entrada que se utiliza para seleccionar el rango adecuadoDiferencia entre el límite inferior del rango y el valor de la propiedad de entrada que se utiliza para seleccionar el rango adecuado
 Valor más allá del límite superiorDiferencia entre el límite superior del último rango definido y el valor de la propiedad de entrada

Clase de tabla de rangos frente a tablas de rangos

Ejemplo de tablas de rangos

Cada tabla de rangos gestiona exactamente una propiedad numérica y la compara con conjuntos de intervalos definidos en la tabla. Las columnas de entrada adicionales se gestionan como en las tablas de asignación. Para cada combinación de valores para las columnas de entrada, se debe proporcionar un conjunto de intervalos. Pongamos un ejemplo para esto.

Ejemplo de tablas de rangos

Supongamos que desea proporcionar precios para paquetes de diferentes clases de peso medidas en kilogramos.

Los precios así como los límites de las clases de peso dependen del país desde el que se envía el paquete, así como de un nivel de servicio, que fue elegido por el suscriptor.

Puede solucionarlo añadiendo dos columnas de entrada País y Nivel de servicio a la clase de tabla de rangos. La ponderación es el valor numérico obligatorio, que siempre gestiona una tabla de rangos, por lo que no le añade una columna específica. Una columna de salida "precio" del tipo de datos "Número individual" contendrá el precio asociado a cada paquete en función de su peso.

Cuando tiene que gestionar precios para los países "Francia" y "Alemania", así como los niveles de servicio "Estándar" y "Premium", debe actualizar cuatro conjuntos de intervalos: uno para cada combinación de valores de entrada:

Intervalos de tabla de ejemplo

PaísNivel de servicioInicio de intervaloFin intervaloPrecio
FranciaPrima0112
FranciaPrima1315
FranciaPrima32025
FranciaEstándar0111
FranciaEstándar1314
FranciaEstándar32022
AlemaniaPrima0111
AlemaniaPrima11014
AlemaniaPrima102024
AlemaniaEstándar0110
AlemaniaEstándar11013
AlemaniaEstándar102021

Nota

Tenga en cuenta que, por motivos de simplicidad, la columna "moneda" se ha omitido aquí. En un escenario productivo probablemente también añadiría esta columna al conjunto de columnas de entrada.

Ejemplo en el sistema

Aunque los límites de intervalo para Francia estándar y Francia premium no difieren, debe añadirlos dos veces en el sistema, una vez para cada combinación de valores de columna de entrada. La figura anterior muestra cómo una tabla de rangos creada en función de la clase de tabla de rangos que se muestra en la figura anterior.

Tenga en cuenta que la tabla de valores de salida solo muestra el conjunto de intervalos asociado a la combinación de valores de entrada seleccionados en la tabla anterior.

Es posible que haya observado que las tablas de rangos no contienen una columna de fecha "válido desde" y "válido hasta" de forma predeterminada. En su lugar, cada tabla de rangos se organiza en cronologías. Esto significa que cualquier modificación del contenido de una tabla de rangos, incluso el más pequeño, dará como resultado un nuevo elemento en la cronología de las tablas. Todos los datos de la tabla (junto con la modificación potencialmente pequeña) se almacenarán de nuevo con una determinada fecha de inicio de validez. La fecha se solicitará al grabar la tabla en la base de datos de SAP Convergent Charging.

Tablas de rangos de suscriptor

Al igual que existe una variación específica de abonado de tablas de asignación, hay una variación específica de abonado de tablas de rangos. Este tipo de tabla solo es accesible para la cuenta de abonado a la que está vinculado y a la que no puede acceder ninguna otra cuenta de abonado. Por lo tanto, las tablas de rangos de suscriptor se prestan bien para almacenar información de precios individual de contrato o individual de cliente u otros datos relacionados con el cliente/suscriptor.

Utilización de tablas range en planificaciones de precios

Si desea leer datos almacenados en una tabla de rangos, debe utilizar el componente de comparador de introductor de tablas de rangos.

El introductor de la tabla de rangos

El componente introductor de la tabla de rangos tiene un conjunto de ramas de salida. Las siguientes sucursales siempre están disponibles:

  • <property> Está por debajo del primer límite
  • <property> Está en un rango
  • No existen valores de entrada

Dependiendo de dónde se encuentre el valor de propiedad numérico introducido en la tabla de rangos, se toma la rama de salida correspondiente.

Una rama de salida adicional que se ocupa del último intervalo está disponible en función de la configuración de la clase de tabla de rangos: Cuando haya seleccionado que su clase de tabla de rangos no esté limitada para el último intervalo, se llamará a la cuarta rama de salida.

<property> Encontrado en el último rango sin límite

Sin embargo, si configura su clase de tabla de rangos para que esté limitada, el valor numérico encontrado en el último intervalo es el mismo que encontrarlo "en un rango". Al mismo tiempo, la rama "<property> Found in Last Unbounded Range" no tiene sentido ya que no hay un último rango sin límite. Por lo tanto, esta rama se sustituye por:

<property> Está por encima del último destino definido

La siguiente tabla resume esto:

Resumen de configuraciones razonables

Nombre de ramaEl último intervalo no está limitadoEl último intervalo está limitado
<property> Está por debajo del primer límite
<property> Está en un rango
<property> Encontrado en el último rango sin límite
<property> Está por encima del último destino definido
No existen valores de entrada

Crear una tabla de rangos

En el siguiente vídeo, Melissa mostrará a su colega Jonathan cómo crear una nueva clase de tabla de rangos en SAP Convergent Charging.

Ahora que Jonathan ha aprendido a crear una clase de tabla de rangos, Melissa le enseñará a crear una tabla de rangos basada en la nueva clase de tabla de rangos que acaba de crear. Rellenará la tabla con la información de precios necesaria para admitir el uso del ancho de banda del servicio de selección en la nube.