Utilisation de tables par intervalles

Objectives

After completing this lesson, you will be able to:
  • Créez une classe de tables par intervalles.
  • Créez une table par intervalles.
  • Renseignez une table par intervalles avec des données.
  • Expliquez la différence entre une classe de tables par intervalles et une table par intervalles.
  • Utilisez des tables par intervalles dans les planifications des prix.

Introduction aux tables par intervalles

Lorsque vous traitez des intervalles numériques, les tables de mappage ne peuvent pas vous aider. Supposons que vous souhaitiez affecter différents prix à des colis de différents intervalles de poids. Vous devez d'abord déterminer l'intervalle avec un composant et, avec l'intervalle connu, accéder à une table de mappage et en obtenir le prix.

Les tables par intervalles prennent en charge le traitement des intervalles numériques dans la table elle-même. Ces tables vous permettent de définir les plages de poids ou vos paquets dans la table et d'affecter un prix différent pour chaque intervalle. Voyons comment cela fonctionne.

Classe de tables par intervalles

Tout comme pour les tables de mappage, la structure des tables par intervalles est définie séparément de leur contenu. Les colonnes d'entrée et de sortie ainsi que les types de données des colonnes de sortie sont définis dans une "classe de tables par intervalles". Une classe de tables par intervalles se compose des éléments suivants :

  • Décision indiquant si la limite supérieure des intervalles numériques est considérée comme faisant partie de l'intervalle ("inclus") ou non ("exclusif")
  • Décision indiquant si la limite supérieure du dernier intervalle est "bornée" ou "non limitée"
  • 0 à 5 colonnes d'entrée de type de données "chaîne"
  • 1 à 15 colonnes de sortie de type "chaîne", "nombre unique", "nombre cumulé" ou "nombre cumulé de taille de plage"

La figure ci-dessous illustre une classe de tables par intervalles dans l'outil principal.

Exemple de classe de tables par intervalles dans l'outil principal.

Il existe quatre types de données pour les valeurs de sortie numériques :

Chaîne

Ce type de données contient simplement une chaîne comme sortie. L'idée est de prendre en charge les cas d'utilisation, où les propriétés de chaîne sont associées à des intervalles de numéros sous la forme suivante :

  • La classe de poids "Léger" est affectée aux colis dont le poids est supérieur à 0 et inférieur à 1 kg.
  • Les colis dont le poids est supérieur à 1 et inférieur ou égal à 3 kg sont affectés à la classe de poids « moyen ».
  • Les colis d'un poids supérieur à 3 et pouvant aller jusqu'à 20 kg sont affectés à la classe de poids « lourd ».
Numéro unique

Ce type de données fournit un numéro unique comme sortie. Il peut s'agir du prix d'un colis entrant dans une classe de poids spécifique. L'idée est de prendre en charge les cas d'utilisation, où les prix sont définis sous la forme suivante :

  • Les colis d'un poids supérieur à 0 et pouvant aller jusqu'à 1 kg coûtent 12,- €
  • Les colis d'un poids supérieur à 1 kg et pouvant aller jusqu'à 3 kg coûtent 15,- €
  • Les colis d'un poids supérieur à 3 kg et allant jusqu'à 20 kg coûtent 25,- €
Nombre cumulé

Une propriété de nombre cumulé additionne les nombres d'intervalles dans lesquels la valeur de nombre fournie se chevauche, en excluant généralement la plage dans laquelle se situe le poids. L'idée est de prendre en charge les cas d'utilisation, où les prix sont définis sous la forme suivante :

  • Le premier kg d'un colis coûte 12,- €
  • Les 2 kg suivants coûtent 3,- €
  • Les 17 kg suivants coûtent 10,- €
Nombre cumulé de la taille de la plage

Ce type de données est similaire au type de données "nombre cumulé" car il additionne les intervalles affectés par la valeur comparée aux intervalles. Cependant, outre la somme de tous les prix, la taille de l'intervalle de tous les intervalles concernés est également prise en compte.

L'idée est de prendre en charge les cas d'utilisation, où les prix sont définis sous la forme suivante :

  • Le premier kg coûte 6,- € par kg
  • Les 2 kg suivants coûtent 1,50 € par kg.
  • Les 17 kg suivants coûtent 2,- € par kg

Création de table par intervalles

Configuration d'un introducteur de table par intervalles

La configuration de l'introducteur de table par intervalles est similaire à celle utilisée pour lire à partir des tables de correspondance. Tout d'abord, une classe de tables par intervalles doit être sélectionnée. La classe définit les colonnes d'entrée qui doivent être mappées aux propriétés.

Configuration d'un introducteur de table par intervalles

Les fonctions numérotées ci-dessous se rapportent à la figure ci-dessus :

  1. Une fois qu'une classe de tables par intervalles a été sélectionnée, un ID de table par intervalles spécifique peut être lu à partir d'un paramètre au moment de l'exécution ou fourni comme sélection de table spécifique au moment de la conception.
  2. La date de référence est là pour sélectionner la bonne version de table dans la chronologie de la table. La version de table sera toujours celle valide à la date et à l'heure indiquées par la date de référence.
  3. La propriété d'entrée de plage est la propriété numérique contenant la valeur que vous souhaitez transmettre à la table par intervalles. Cette valeur sera comparée aux intervalles des tables pour sélectionner l'intervalle correct et dériver les valeurs de sortie.
  4. La section "Mappage des propriétés d'entrée" demande qu'une propriété compatible avec le type soit affectée à chaque colonne d'entrée de la table, exactement de la même manière que vous le connaissez dans l'introducteur de table de mappage.

Pour les propriétés de sortie, vous pouvez voir qu'il existe une différence significative avec l'introducteur de table de correspondance : Il existe deux tables avec des propriétés de sortie.

  • La table supérieure intitulée "Mappage des propriétés générées" répertorie toutes les colonnes que vous avez définies comme colonnes de sortie dans votre classe de tables par intervalles.
  • La différence ici est que chaque ligne/propriété de sortie a deux cellules à sa fin. Chaque cellule s'attend à ce que vous saisissiez un nom de propriété dans lequel la valeur de sortie est écrite. Pourquoi existe-t-il deux noms de propriété de sortie lorsque vous voulez uniquement calculer une valeur de sortie ?

Selon le type de données de votre propriété de sortie, seul l'un des deux noms de propriété de sortie est important. Examinons le contenu des deux noms de propriété de sortie en fonction de chaque type de données disponible pour votre propriété de sortie.

Renseignement des tables par intervalles avec des données

Numéro individuel

Lorsque vous avez sélectionné Numéro unique comme type de données de propriété de sortie, la première colonne Nom de propriété généré est la seule disponible. Vous ne pouvez pas saisir de valeur dans la deuxième colonne Nom de propriété cumulé généré. Comme la colonne de sortie de table par intervalles du type de données Nombre unique fournira uniquement la valeur de sortie de la colonne de table par intervalles déterminée par la propriété numérique, il n'est pas judicieux de définir un nom de propriété qui contient une valeur calculée cumulativement. Par conséquent, la deuxième colonne est désactivée.

Exemple

Souvenons-nous des exemples donnés ci-dessus pour les différents types de données de colonne de sortie et créons un exemple correspondant. Supposons que les plages suivantes soient définies pour une propriété de sortie de nombre unique.

Plages définies pour une propriété de sortie de numéro unique, exemple 1

Plage de poidsPrix du paquet (valeur numérique individuelle)
[0;1]12
[1;3]15
[3;20]25

Lorsqu'un poids d'emballage numérique de 7 kg est transféré dans le composant de comparateur, le résultat de la propriété de nombre unique est 25, car la quantité de 7 est comprise entre 3 et 20. Aucun autre calcul n'est effectué. Par conséquent, vous saisirez uniquement un nom de propriété dans la colonne Nom de propriété généré. Ici, le nom Prix a été saisi. Dans notre exemple, après la comparaison du poids de l'emballage avec votre table de plages de valeurs, une propriété appelée Prix sera disponible, qui contient la valeur 25. La colonne Nom de propriété cumulée générée ne peut pas être utilisée car aucun calcul cumulé n'est effectué.

Exemple, étape 1

Nombre cumulé

Supposons que les prix des packages soient un peu différents. Le prix du colis est maintenant défini par intervalle de poids :

  • Le premier kg d'un colis coûte 12,- €
  • Les 2 kg suivants coûtent 3,- €
  • Les 17 kg suivants coûtent 10,- €

La table ressemblerait à ceci (faites attention à la modification du type de données de la colonne de sortie) :

Plages définies pour une propriété de sortie de numéro unique, exemple 2

Plage de poidsPrix du paquet (valeur numérique individuelle)
[0;1]12
[1;3]3
[3;20]10

Il existe maintenant une valeur cumulée à calculer. Vous pouvez désormais définir les deux noms des propriétés de sortie :

Exemple, étape 2

Ici, le champ Nom de propriété généré est défini sur Prix tandis que le Nom de propriété cumulé généré est défini sur Prix cumulé. Par conséquent, SAP Convergent Charging créera deux propriétés avec des valeurs différentes. Supposons que vous envoyiez à nouveau une valeur de poids de 7 kg dans le comparateur de table. Après la comparaison de la table par intervalles, deux nouvelles propriétés seront disponibles au lieu d'une seule :

  • La propriété Prix cumulé contiendra la valeur 15. Le système détermine l'intervalle atteint par la quantité. Il s'agit ici du troisième intervalle. Il additionne ensuite les valeurs de la colonne de sortie de tous les intervalles antérieurs à celui qui a été atteint. Voici les valeurs de colonne du premier et du deuxième intervalle : 12 + 3 = 15.
  • La propriété Price contiendra toujours le prix trouvé dans l'intervalle atteint par le poids du colis que vous avez envoyé dans le comparateur. La valeur du poids est 7, le troisième intervalle est donc atteint. Il est associé à un prix de 10. La propriété Prix aura donc une valeur de 10.

Comme vous pouvez le voir, les deux propriétés de sortie doivent encore être ajoutées pour obtenir le prix total à facturer : 15 + 10 = 25.

Nombre cumulé de la taille de la plage

Supposons que le prix soit différent par intervalle, mais indiqué par kg au lieu de par intervalle de poids :

  • Le premier kg coûte 6,- € par kg
  • Les 2 kg suivants coûtent 1,50 € par kg.
  • Les 17 kg suivants coûtent 2,- € par kg

La table par intervalles qui en résulte ressemblerait à ceci (à nouveau, le type de données de sortie a été modifié !).

Plages définies pour une propriété de sortie de numéro unique, exemple 3

Plage de poidsPrix du paquet (valeur numérique individuelle)
...0;1]6
...1;3]1,5
[3;20]2

Là encore, les deux noms des propriétés de sortie doivent être définis. Ici, les mêmes noms ont été choisis que pour l'exemple précédent. Mais n'oubliez pas que vous pouvez indiquer n'importe quel nom pour les propriétés générées.

Exemple, étape 3

Supposons qu'une valeur de 7 kg soit à nouveau transmise à la table, de sorte que le troisième intervalle soit à nouveau atteint. Comme les deux noms de propriété générés doivent être définis, deux propriétés de sortie sont calculées :

  • Pour la propriété "Prix cumulé", tous les intervalles qui sont antérieurs à l'intervalle atteint par le numéro transmis à la table par intervalles sont déterminés. Comme le nombre 7 signifie que le troisième intervalle a été atteint, le premier et le deuxième sont sélectionnés.
  • La valeur de la colonne de sortie n'est pas multipliée par la taille de l'intervalle pour chacun de ces intervalles. Pour le premier intervalle, cela signifie.
  • Pour le deuxième intervalle, cela signifie
  • Ensuite, la somme de ces produits est calculée :
  • La propriété « Prix cumulé » contiendra donc la valeur 9.
  • Pour la propriété "Price", la valeur sera à nouveau la valeur de sortie de l'intervalle atteint par la valeur du nombre transmise à la table par intervalles. Comme la valeur est 7, le troisième intervalle est atteint. Sa valeur de sortie est 2, de sorte que la valeur de la propriété « Price » est 2.

En regardant les résultats, vous n'êtes pas encore tout à fait au résultat souhaité. Nos prix étaient censés fonctionner comme ceci:

  • Le premier kg coûte 6,- € par kg
  • Les 2 kg suivants coûtent 1,50 € par kg.
  • Les 17 kg suivants coûtent 2,- € par kg

Selon cette logique, un poids de paquet de 7 kg devrait entraîner

  1. 6,- € pour le premier kg
  2. 3,- € pour les 2 kg suivants (chaque kg correspond à 1,50 €)
  3. 8,- € pour les 4 kg restants (chaque kg vaut 2,- €).

Cela totalise jusqu'à 17,- €.

La comparaison des tables par intervalles a été effectuée avec 9,- pour la propriété "Prix cumulé" et 2,- pour la propriété "Prix". La somme est de 11,- € donc, il vous manque clairement 6,- €, car le dernier intervalle ne prend pas en compte la quantité. Alors qu'est-ce qui manque ?

C'est là que la table inférieure intitulée Propriétés calculées devient importante.

Chaque introducteur de table par intervalles crée un ensemble de propriétés standard indépendamment des colonnes de sortie fournies par votre table par intervalles. Ces propriétés permettent de fournir de la flexibilité à l'utilisateur, afin qu'une variété de modèles de calcul des prix puisse être pris en charge au-delà de ceux répertoriés ici. Le tableau suivant fournit une liste de ces propriétés avec une explication de leur signification. Vous aurez besoin de l'un d'eux.

Liste des propriétés avec une explication de sa signification

Valeur calculéeSignification
Limite inférieure de la plageContient la limite inférieure de la plage, qui a été atteinte, le cas échéant.
Limite supérieure de la plageContient la limite supérieure de la plage, qui a été atteinte, le cas échéant.
Taille de la plageContient la taille d'une plage. En règle générale, cette valeur est calculée comme suit : <UPPER_BOUND_OF_RANGE> - <LOWER_BOUND_OF_RANGE>.
Prorata dans la plage

Contient un facteur variant entre 0 et 1 indiquant la position relative de la valeur du nombre dans les limites de l'intervalle, où une valeur plus proche de 0 signifie que la valeur se situe plus vers la limite inférieure et une valeur plus proche de 1, ce qui signifie que la valeur est plus vers la limite supérieure.

Exemple :

Une valeur de 17 comparée à une plage de 10;20] entraînerait une valeur de 0,7. Il est calculé comme suit : (17-10):(20-10) ou plus généralement comme suit : (<NUMBER_VALUE> - <LOWER_BOUND_OF_RANGE>) : (<UPPER_BOUND_OF_RANGE> - <LOWER_BOUND_OF_RANGE>

Valeur au-delà de la limite inférieure

Il s'agit de la distance entre la valeur du nombre et sa limite inférieure.

Exemple :

Une valeur de 17 par rapport à une plage de 10;20] entraînerait une valeur de 7, car 17 – 10 est 7 ou plus généralement <NUMBER_VALUE> - <LOWER_BOUND_OF_RANGE>

Valeur au-delà de la limite supérieure

Cette propriété contient la distance de la valeur numérique et la limite supérieure de la dernière valeur non limitée. Par conséquent, cette propriété peut uniquement être calculée pour les classes de tables par intervalles limitées.

Exemple :

Une valeur de 27 comparée à un dernier intervalle de 10;20] conduirait à une valeur de 7, car 27 – 20 = 7 ou plus généralement <NUMBER_VALUE> - <UPPER_BOUND_OF_LAST_RANGE >

Pour cela, vous avez besoin de la propriété calculée appelée Valeur au-delà de la limite inférieure. Pour un poids d'emballage de 7 kg, le troisième intervalle est atteint. Sa limite inférieure est 3. La différence entre 7 kg et 3 kg est de 4 kg. Ces 4 kg doivent être multipliés par la valeur de la propriété de sortie de l'intervalle, qui est de 2,- €. Le produit de 2,- € et 4 kg totalise jusqu'aux 8,- € manquants

Vous pouvez maintenant totaliser les totaux de tous les intervalles :

  1. 6,- € pour le premier kg
  2. 3,- € pour les 2 kg suivants (chaque kg correspond à 1,50 €)
  3. 8,- € pour les 4 kg restants (comme vous venez de calculer)

La somme est de 17,- €, comme prévu.

Vous pouvez utiliser les propriétés calculées comme bon vous semble. Cependant, toutes les propriétés ne sont pas disponibles dans chaque branche. Le tableau suivant indique les branches pour lesquelles chaque propriété est disponible.

Branches et propriétés

  <property> se trouve en dessous de la première limite<property> se trouve dans une plage<property> trouvée dans la dernière plage non limitée<property> est au-dessus de la dernière limite définie
 Limite inférieure de la plageIl est égal à 0Il est égal à la limite inférieure de la plage sélectionnée.Il est égal à la limite inférieure de la plage sélectionnée.Il est égal à la dernière limite supérieure.
Propriété calculéeLimite supérieure de la plageIl est égal à 0Il est égal à la limite supérieure de la plage sélectionnée.Il est égal à la dernière limite supérieure.
Taille de la plageIl est égal à 0Limite supérieure de la plage - Limite inférieure de la plage.Il est égal à la dernière limite supérieure.
 Prorata dans la plageValeur au-delà de la limite inférieure/taille de la plage
 Valeur au-delà de la limite inférieureDifférence entre la limite inférieure de la plage et la valeur de la propriété d'entrée utilisée pour sélectionner la plage appropriéeDifférence entre la limite inférieure de la plage et la valeur de la propriété d'entrée utilisée pour sélectionner la plage appropriée
 Valeur au-delà de la limite supérieureDifférence entre la limite supérieure de la dernière plage définie et la valeur de la propriété d'entrée

Classe de tables par intervalles ou tables par intervalles

Exemple de tables par intervalles

Chaque table par intervalles gère exactement une propriété numérique et la compare à des ensembles d'intervalles définis dans la table. Les colonnes d'entrée supplémentaires sont traitées comme dans les tables de mappage. Pour chaque combinaison de valeurs pour les colonnes d'entrée, un ensemble d'intervalles doit être fourni. Donnons un exemple.

Exemple de tables par intervalles

Supposons que vous souhaitiez fournir des prix pour des colis de différentes classes de poids mesurés en kilogrammes.

Les prix ainsi que les limites des classes de poids dépendent du pays à partir duquel le paquet est envoyé ainsi que d'un niveau de service, qui a été choisi par l'abonné.

Vous pouvez résoudre ce problème en ajoutant deux colonnes d'entrée Pays et Niveau de service à la classe de tables par intervalles. La pondération est la valeur numérique obligatoire, qui est toujours gérée par une table par intervalles, vous n'ajoutez donc pas de colonne dédiée. Une colonne de sortie "price" dont le type de données est "Single Number" contient le prix associé à chaque package en fonction de son poids.

Lorsque vous devez gérer les prix pour les pays "France" et "Allemagne" ainsi que les niveaux de service "Standard" et "Premium", vous devez gérer quatre ensembles d'intervalles, un pour chaque combinaison de valeurs d'entrée :

Exemples d'intervalles de tables

PaysNiveau de serviceDébut de l'intervalleFin de l'intervallePrix
FrancePremium0112
FrancePremium1315
FrancePremium32025
FranceStandard0111
FranceStandard1314
FranceStandard32022
AllemagnePremium0111
AllemagnePremium11014
AllemagnePremium102024
AllemagneStandard0110
AllemagneStandard11013
AllemagneStandard102021

Remarque

Notez que pour des raisons de simplicité, la colonne "devise" a été omise ici. Dans un scénario productif, vous ajouteriez probablement également cette colonne à la liste de colonnes d'entrée.

Exemple dans le système

Bien que les limites d'intervalle pour France Standard et France Premium ne soient pas différentes, vous devez les ajouter deux fois dans le système, une fois pour chaque combinaison de valeurs de colonne d'entrée. La figure ci-dessus montre comment une table par intervalles créée sur la base de la classe de tables par intervalles illustrée dans la figure précédente.

Notez que la table des valeurs de sortie affiche uniquement l'ensemble d'intervalles associé à la combinaison de valeurs d'entrée sélectionnée dans le tableau ci-dessus.

Vous avez peut-être remarqué que les tables par intervalles ne contiennent pas de colonne de date "Début de validité" et "Fin de validité" par défaut. Au lieu de cela, chaque table par intervalles est organisée en chronologies. Cela signifie que toute modification du contenu d'une table par intervalles (même la plus petite) entraînera un nouvel élément dans la chronologie des tables. L'ensemble des données de la table (ainsi que la modification potentiellement minuscule) sont à nouveau archivés avec une certaine date de début de validité. La date est demandée lors de la sauvegarde de la table dans la base de données de SAP Convergent Charging.

Tables par intervalles pour abonné

Tout comme il existe une variation spécifique à l'abonné des tables de correspondance, il existe une variation spécifique à l'abonné des tables par intervalles. Ce type de table est accessible uniquement au compte d'abonné auquel il est lié et n'est accessible par aucun autre compte d'abonné. Par conséquent, les tables par intervalles pour abonnés se prêtent bien pour stocker les informations de prix individuelles des clients ou des contrats ou d'autres données relatives aux clients/abonnés.

Utilisation de tables par intervalles dans les planifications des prix

Lorsque vous voulez lire des données stockées dans une table par intervalles, vous devez utiliser le composant de comparateur de l'introducteur de table par intervalles.

Introducteur de table par intervalles

Le composant introducteur de table par intervalles a un ensemble de branches sortantes. Les branches suivantes sont toujours disponibles :

  • <property> Est en dessous de la première limite
  • <property> Est dans une plage
  • Valeurs de saisie introuvables

Selon l'emplacement de la valeur de propriété numérique insérée dans la table par intervalles, la branche de sortie correspondante est utilisée.

Une branche sortante supplémentaire traitant le dernier intervalle est disponible en fonction de la configuration de la classe de tables par intervalles : lorsque vous avez sélectionné votre classe de tables par intervalles pour qu'elle soit délimitée pour le dernier intervalle, la quatrième branche de sortie est appelée.

<property> Trouvé dans la dernière plage non limitée

Si vous configurez votre classe de tables par intervalles pour qu'elle soit limitée, le fait d'avoir votre valeur numérique trouvée dans le dernier intervalle équivaut à la rechercher "dans une plage". En même temps, la branche "<propriété> trouvée dans la dernière plage non limitée" n'est pas pertinente car il n'y a pas de dernière plage non limitée. Par conséquent, cette branche est remplacée par :

<property> Est au-dessus de la dernière limite définie

Le tableau suivant résume ce point :

Synthèse des configurations raisonnables

Nom de la succursaleLe dernier intervalle n'est pas limité.Le dernier intervalle est limité.
<property> Est en dessous de la première limite
<property> Est dans une plage
<property> Trouvé dans la dernière plage non limitée
<property> Est au-dessus de la dernière limite définie
Valeurs de saisie introuvables

Création d'une table par intervalles

Dans la vidéo suivante, Melissa montrera à son collègue Jonathan comment créer une classe de tables par intervalles dans SAP Convergent Charging.

Maintenant que Jonathan a appris à créer une classe de tables par intervalles, Melissa va maintenant l'entraîner à créer une table par intervalles basée sur la nouvelle classe de tables par intervalles qu'il vient de créer. Il remplira le tableau avec les informations de prix nécessaires pour prendre en charge l'utilisation de la Bande passante du service de sélection Cloud.