Uso de tabelas de intervalos

Objectives

After completing this lesson, you will be able to:
  • Criar uma classe de tabela de intervalos.
  • Crie uma tabela de intervalos.
  • Preencher uma tabela de intervalos com dados.
  • Explique a diferença entre uma classe de tabela de intervalos e uma tabela de intervalos.
  • Utilizar tabelas de intervalos em planejamentos de preços.

Introdução às tabelas de intervalos

Ao lidar com intervalos numéricos, as tabelas de mapeamento não podem ajudar. Digamos que você deseja atribuir preços diferentes a pacotes de intervalos de peso diferentes. Você teria que determinar primeiro o intervalo com um componente e, com o intervalo conhecido, acessar uma tabela de mapeamento e obter o preço da mesma.

As tabelas range oferecem suporte para o tratamento de intervalos numéricos dentro da própria tabela. Com essas tabelas, você pode definir os intervalos de peso ou seus pacotes na tabela e atribuir um preço diferente para cada intervalo. Vamos ver como isso funciona.

Classe de tabela de intervalos

Assim como para tabelas de mapeamento, a estrutura para tabelas de intervalos é definida separadamente do respectivo conteúdo. As colunas de entrada e de saída, bem como os tipos de dados das colunas de saída, são definidas em uma chamada "classe de tabela de intervalos". Uma classe de tabela de intervalos é composta por:

  • Decisão sobre se o limite superior dos intervalos numéricos é considerado parte do intervalo ("inclusivo") ou não ("exclusivo")
  • Decisão, se o limite superior do último intervalo é "limitado" ou "ilimitado"
  • 0 a 5 colunas de entrada do tipo de dados "string"
  • 1 a 15 colunas de saída do tipo "string", "Número único", "Número acumulado" ou "Número acumulado do tamanho do intervalo"

A figura abaixo mostra uma classe de tabela de intervalos na ferramenta central.

Exemplo de uma classe de tabela range na ferramenta central.

Existem quatro tipos de dados para valores de saída numéricos:

Cadeia

Este tipo de dados contém simplesmente uma cadeia como saída. A ideia é suportar casos de utilização, em que as propriedades de cadeia estão associadas a intervalos de números na seguinte forma:

  • Os pacotes com um peso superior a 0 e até 1 kg são atribuídos à classe de peso "leve".
  • As embalagens com um peso superior a 1 e até 3 kg são atribuídas à classe de peso "médio".
  • As embalagens com um peso superior a 3 e até 20 kg recebem a classe de peso "pesado"
Número único

Este tipo de dados fornece um único número como saída. Este pode ser o preço para um pacote que cai em uma classe de peso específica. A ideia é dar suporte a casos de utilização em que os preços são definidos da seguinte forma:

  • Pacotes com peso superior a 0 e até 1 kg custam 12,- €
  • Pacotes com um peso superior a 1 kg e até 3 kg custam 15,- €
  • Pacotes com um peso superior a 3 kg e até 20 kg custam 25,- €
Número acumulado

Uma característica de número acumulado soma os números de intervalos em que o valor de número fornecido se sobrepõe, normalmente excluindo o intervalo no qual a ponderação se encontra. A ideia é dar suporte a casos de utilização em que os preços são definidos da seguinte forma:

  • O primeiro kg de um pacote custa 12 €
  • Os próximos 2 kg custam 3,- €
  • Os próximos 17 kg custam 10,- €
Tamanho do intervalo número acumulado

Este tipo de dados é semelhante ao tipo de dados "número acumulado", uma vez que soma os intervalos afetados pelo valor comparado com os intervalos. No entanto, além do total de todos os preços, o tamanho do intervalo de todos os intervalos afetados também é considerado.

A ideia é dar suporte a casos de utilização em que os preços são definidos da seguinte forma:

  • O primeiro kg custa 6,- € por kg
  • Os próximos 2 kg custam 1,50 € por kg
  • Os próximos 17 kg custam 2,- € por kg

Criação de tabela de intervalos

Configuração de um Introdutor de tabela de intervalos

A configuração do introdutor de tabela de intervalos é como a usada para ler a partir de tabelas de mapeamento. Primeiro, é necessário selecionar uma classe de tabela de intervalos. A classe define quais colunas de entrada devem ser mapeadas para propriedades.

Configuração de um Introdutor de tabela de intervalos

As funções numeradas abaixo referem-se à figura acima:

  1. Assim que uma classe de tabela de intervalos tiver sido selecionada, um ID de tabela de intervalos específico pode ser lido a partir de um parâmetro no momento da execução ou fornecido como uma seleção de tabela específica no tempo de design.
  2. A data de referência está lá para escolher a versão da tabela correta fora da cronologia da tabela. A versão da tabela será sempre a válida na data e hora indicadas pela data de referência.
  3. A característica de entrada de intervalo é a característica de número que contém o valor que você deseja transferir para a tabela de intervalos. Este valor será comparado com os intervalos de tabelas para selecionar o intervalo correto e derivar os valores de saída.
  4. A seção "Mapeamento de características de entrada" solicita que uma propriedade compatível com tipo seja atribuída a cada coluna de entrada da tabela, da mesma forma que você a conhece a partir do introdutor da tabela de mapeamento.

Para as propriedades de saída, você pode ver que existe uma diferença significativa para o introdutor de tabela de mapeamento: existem duas tabelas com propriedades de saída.

  • A tabela superior denominada "Mapeamento de características geradas" lista todas as colunas que você definiu como colunas de saída em sua classe de tabela de intervalos.
  • A diferença aqui é que cada propriedade de linha/saída tem duas células no final. Cada célula espera que você insira um nome de característica, no qual o valor de saída é escrito. Então, por que existem dois nomes de característica de saída, quando você só quer calcular um valor de saída?

Dependendo do tipo de dados que sua característica de saída tem, apenas um dos dois nomes de característica de saída é importante. Vejamos o conteúdo dos dois nomes de propriedade de saída dependendo de cada tipo de dados disponível para sua propriedade de saída.

Preenchimento de tabelas range com dados

Número único

Quando você tiver selecionado Número individual como o tipo de dados da característica de saída, a primeira coluna Nome de característica gerado é a única disponível. Você não pode inserir nenhum valor na segunda coluna Nome de característica acumulado gerado. Uma vez que a coluna de saída da tabela de intervalos do tipo de dados Número individual só fornecerá o valor de saída da coluna da tabela de intervalos determinada pela característica numérica, não faz sentido definir um nome de característica que contenha qualquer valor calculado cumulativamente. Por isso, a segunda coluna está desativada.

Exemplo

Vamos lembrar os exemplos fornecidos acima para os diferentes tipos de dados da coluna de saída e criar um exemplo correspondente. Suponha que os seguintes intervalos estão definidos para uma característica de saída de número individual.

Intervalos definidos para uma característica de saída de número individual, exemplo 1

Intervalo de pesoPreço do pacote (valor de número único)
[0;1]12
[1;3]15
[3;20]25

Quando um peso numérico da embalagem de 7 kg é transferido para o componente de comparador, o resultado da característica de número único é 25, uma vez que a quantidade de 7 está entre 3 e 20. Não é efetuado mais nenhum cálculo. Como resultado, você só irá inserir um nome de característica na coluna Nome de característica gerado. Aqui, o nome Preço foi inserido. Em nosso exemplo, após a comparação do peso do pacote com sua tabela de intervalos, uma propriedade chamada Preço estará disponível, que contém o valor 25. A coluna Nome de propriedade cumulativa gerada não pode ser usada porque nenhum cálculo cumulativo foi feito.

Exemplo, Etapa 1

Número acumulado

Suponha que os preços dos pacotes são um pouco diferentes. Agora, o preço do pacote é definido por intervalo de peso:

  • O primeiro kg de um pacote custa 12 €
  • Os próximos 2 kg custam 3,- €
  • Os próximos 17 kg custam 10,- €

A tabela teria o seguinte aspecto (preste atenção à modificação do tipo de dados da coluna de saída):

Intervalos definidos para uma característica de saída de número individual, exemplo 2

Intervalo de pesoPreço do pacote (valor de número único)
[0;1]12
[1;3]3
[3;20]10

Agora existe um valor acumulado a ser calculado. Agora você pode definir os dois nomes de propriedade de saída:

Exemplo, Etapa 2

Aqui, o campo Nome da propriedade gerado é definido como Preço, enquanto o Nome da propriedade cumulativa gerada é definido como Preço acumulado. Como resultado, o SAP Convergent Charging criará duas características com valores diferentes. Vamos assumir que você envia novamente um valor de peso de 7kg para o comparador de tabelas. Após a comparação da tabela de intervalos, duas novas propriedades estarão disponíveis em vez de apenas uma:

  • A característica Preço acumulado conterá o valor 15. O sistema determinará o intervalo atingido pela quantidade. Aqui está o terceiro intervalo. Em seguida, ele adiciona os valores da coluna de saída de todos os intervalos anteriores ao que foi atingido. Aqui estão os valores de coluna do primeiro e do segundo intervalo: 12 + 3 = 15.
  • A propriedade Price ainda conterá o preço encontrado no intervalo atingido pelo peso do pacote que você enviou para o comparador. O valor da ponderação é 7, de modo que o terceiro intervalo é atingido. Ele está associado a um preço de 10. A propriedade Price terá, portanto, o valor 10.

Como você pode ver, ambas as propriedades de saída ainda precisam ser adicionadas em conjunto para chegar ao preço total a ser cobrado: 15 + 10 = 25.

Tamanho do intervalo número acumulado

Vamos supor que o preço é diferente por intervalo, mas indicado por kg em vez de por intervalo de peso:

  • O primeiro kg custa 6,- € por kg
  • Os próximos 2 kg custam 1,50 € por kg
  • Os próximos 17 kg custam 2,- € por kg

A tabela range resultante teria o seguinte aspecto (novamente o tipo de dados de saída foi modificado).

Intervalos definidos para uma característica de saída de número individual, exemplo 3

Intervalo de pesoPreço do pacote (valor de número único)
<0;1]6
<1;3]1,5
[3;20]2

Novamente, os dois nomes de propriedade de saída devem ser definidos. Aqui, foram selecionados os mesmos nomes que para o exemplo anterior. Mas lembre-se de que você poderia fornecer qualquer nome que deseje para as propriedades geradas.

Exemplo, Etapa 3

Assuma que um valor de 7 kg é transferido novamente para a tabela, de modo que, mais uma vez, o terceiro intervalo seja atingido. Como ambos os nomes de propriedade gerados devem ser definidos, duas propriedades de saída são calculadas:

  • Para a característica "Preço acumulado", são determinados todos os intervalos que são anteriores ao intervalo atingido pelo número transferido para a tabela de intervalos. Como o número 7 significa que o terceiro intervalo foi atingido, o primeiro e o segundo são selecionados.
  • O valor da coluna de saída não é multiplicado pelo tamanho do intervalo para cada um destes intervalos. Para o primeiro intervalo, isso significa.
  • Para o segundo intervalo, isso significa
  • Em seguida, o total desses produtos é calculado:
  • Assim, a característica "Preço acumulado" conterá o valor 9.
  • Para a propriedade "Price", o valor será novamente o valor de saída do intervalo atingido pelo valor numérico transferido para a tabela range. Como o valor é 7, o terceiro intervalo é atingido. Seu valor de saída é 2, por isso o valor da propriedade "Price" é 2.

Olhando para os resultados, você ainda não está bem no resultado desejado. Nossos preços deveriam funcionar assim:

  • O primeiro kg custa 6,- € por kg
  • Os próximos 2 kg custam 1,50 € por kg
  • Os próximos 17 kg custam 2,- € por kg

Seguindo esta lógica, um peso da embalagem de 7 kg deve resultar em

  1. 6,- € para o primeiro kg
  2. 3,- € para os próximos 2 kg (cada kg vai por 1,50 €)
  3. 8,- € para os restantes 4 kg (cada kg vai para 2,- €).

Isto totaliza até 17,- €.

A comparação da tabela de intervalos gerou 9,- para a propriedade "Preço Cumulativo" e 2,- para a propriedade "Preço". A soma dele é 11,- € então, você está claramente faltando 6,- €, como o último intervalo não considera a quantidade. Então, o que está faltando?

É aqui que a tabela inferior denominada Propriedades calculadas se torna importante.

Cada introdutor de tabela de intervalos cria um conjunto de propriedades padrão, independentemente das colunas de saída que sua tabela de intervalos fornece. Essas propriedades fornecem flexibilidade ao usuário, de modo que vários modelos de cálculo de preço possam ser suportados além dos listados aqui. A tabela a seguir fornece uma lista dessas propriedades juntamente com uma explicação do seu significado. Você vai precisar de um deles.

Lista de propriedades junto com uma explicação do significado

Valor calculadoSignificado
Limite inferior do intervaloContém o limite inferior do intervalo, que foi atingido, se disponível.
Limite superior do intervaloContém o limite superior do intervalo, que foi atingido, se disponível.
Tamanho do intervaloContém o tamanho de um intervalo. Normalmente, isso é calculado como <UPPER_BOUND_OF_RANGE> - <LOWER_BOUND_OF_RANGE>.
Pro rata no intervalo

Contém um fator que varia entre 0 e 1, indicando a posição relativa do valor numérico dentro dos limites do intervalo, onde um valor mais próximo de 0 significa que o valor está mais em direção ao limite inferior e um valor mais próximo de 1, o que significa que o valor se encontra mais em direção ao limite superior.

Exemplo:

Um valor de 17 em comparação com um intervalo de <10;20] levaria a um valor de 0,7. É calculado como (17-10):(20-10) ou mais geralmente como (<NUMBER_VALUE> - <LOWER_BOUND_OF_RANGE>) : (<UPPER_BOUND_OF_RANGE> - <LOWER_BOUND_OF_RANGE>

Valor além do limite inferior

Esta é a distância do valor numérico do limite inferior.

Exemplo:

Um valor de 17 em comparação com um intervalo de 10;20] levaria a um valor de 7, uma vez que 17 – 10 é 7 ou mais geralmente <NUMBER_VALUE> - <LOWER_BOUND_OF_RANGE>

Valor além do limite superior

Esta propriedade contém a distância do valor numérico e o limite superior do último valor ilimitado. Como resultado, esta característica só pode ser calculada para classes de tabela de intervalos limitadas.

Exemplo:

Um valor de 27 em comparação com um último intervalo de <10;20] levaria a um valor de 7, uma vez que 27 – 20 = 7 ou mais geralmente <NUMBER_VALUE> - <UPPER_BOUND_OF_LAST_RANGE >

Para seu objetivo, você precisa da característica calculada chamada Valor além do limite inferior. Para o peso da embalagem de 7 kg, é atingido o terceiro intervalo. Seu limite inferior é 3. A diferença entre 7 kg e 3 kg é de 4 kg. Esses 4 kg devem ser multiplicados pelo valor da característica de saída do intervalo, que é 2,- €. O produto de 2,- € e 4 kg totaliza até os 8,- € em falta

Agora você pode totalizar as somas de todos os intervalos:

  1. 6,- € para o primeiro kg
  2. 3,- € para os próximos 2 kg (cada kg vai por 1,50 €)
  3. 8,- € para os 4 kg restantes (como você acabou de calcular)

A soma é de 17,- €, como esperado.

Você pode utilizar as características calculadas conforme necessário. No entanto, nem todas as propriedades estão disponíveis em cada ramificação. A tabela a seguir mostra para quais filiais cada propriedade está disponível.

Ramificações e propriedades

  <property> está abaixo do primeiro limite<property> está em um intervalo<property> Encontrado no último intervalo ilimitado<property> Está acima do último limite definido
 Limite inferior do intervaloÉ igual a 0É igual ao limite inferior do intervalo selecionado.É igual ao limite inferior do intervalo selecionado.É igual ao último limite superior.
Característica calculadaLimite superior do intervaloÉ igual a 0É igual ao limite superior do intervalo selecionado.É igual ao último limite superior.
Tamanho do intervaloÉ igual a 0Limite superior do intervalo - Limite inferior do intervalo.É igual ao último limite superior.
 Pro rata no intervaloValor além do limite inferior/tamanho do intervalo
 Valor além do limite inferiorDiferença entre o limite inferior do intervalo e o valor da propriedade de entrada usada para selecionar o intervalo apropriadoDiferença entre o limite inferior do intervalo e o valor da propriedade de entrada usada para selecionar o intervalo apropriado
 Valor além do limite superiorDiferença entre o limite superior do último intervalo definido e o valor da característica de entrada

Classe de tabela de intervalos versus tabelas de intervalos

Exemplo de tabelas de intervalos

Cada tabela de intervalos gerencia exatamente uma propriedade numérica e a compara com conjuntos de intervalos definidos na tabela. As colunas de entrada adicionais são tratadas como nas tabelas de mapeamento. Para cada combinação de valores para as colunas de entrada, deve ser fornecido um conjunto de intervalos. Vamos dar um exemplo disso.

Exemplo de tabelas de intervalos

Suponha que você quer fornecer preços para pacotes de diferentes classes de peso medidas em quilograma.

Os preços, bem como os limites das classes de peso dependem do país de onde o pacote é enviado, bem como de um nível de serviço, que foi escolhido pelo assinante.

Você pode resolver isso adicionando duas colunas de entrada País e Nível de serviço à classe de tabela de intervalos. O peso é o valor numérico obrigatório, que é sempre gerenciado por uma tabela de intervalos, por isso você não adiciona uma coluna dedicada a ela. Uma coluna de saída "preço" do tipo de dados "Número único" conterá o preço associado a cada pacote com base em seu peso.

Se você tiver que administrar preços para os países "França" e "Alemanha", bem como os níveis de serviço "Padrão" e "Premium", deve atualizar quatro conjuntos de intervalos – um para cada combinação de valores de entrada:

Exemplos de intervalos de tabela

PaísNível de serviçoInício do intervaloFim do intervaloPreço
FrançaPrêmio0112
FrançaPrêmio1315
FrançaPrêmio32025
FrançaPadrão0111
FrançaPadrão1314
FrançaPadrão32022
AlemanhaPrêmio0111
AlemanhaPrêmio11014
AlemanhaPrêmio102024
AlemanhaPadrão0110
AlemanhaPadrão11013
AlemanhaPadrão102021

Nota

Observe que, por motivos de simplicidade, a coluna "moeda" foi omitida aqui. Em um cenário produtivo, você também adicionaria esta coluna ao conjunto de colunas de entrada.

Exemplo no sistema

Embora os limites de intervalo para France Standard e France Premium não sejam diferentes, você deve adicioná-los duas vezes ao sistema – uma vez para cada combinação de valores de coluna de entrada. A figura acima mostra como uma tabela de intervalos criada com base na classe de tabela de intervalos exibida na figura anterior.

Considere que a tabela de valores de saída só exibe o conjunto de intervalos associado à combinação de valores de entrada selecionada na tabela acima.

Você pode ter notado que as tabelas de intervalos não contêm uma coluna de data "válido desde" e "válido até" por padrão. Em vez disso, cada tabela de intervalos é organizada em cronologias. Isso significa que qualquer modificação do conteúdo de uma tabela de intervalos – mesmo a mais pequena – resultará em um novo elemento na cronologia das tabelas. Todos os dados da tabela (juntamente com a modificação potencialmente pequena) serão armazenados novamente com uma determinada data de início de validade. A data será solicitada quando você gravar a tabela no banco de dados do SAP Convergent Charging.

Tabelas de intervalos de assinante

Assim como existe uma variação específica de assinante de tabelas de mapeamento, existe uma variação específica de assinante de tabelas de intervalos. Este tipo de tabela só é acessível para a conta de assinante à qual está vinculado e não pode ser acessado por nenhuma outra conta de assinante. Por isso, as tabelas de intervalos de assinante se prestam bem a armazenar informações de preço individual ou individual do cliente ou outros dados relacionados ao cliente/assinante.

Utilização de tabelas de intervalos em planejamentos de preços

Se você quiser ler dados armazenados em uma tabela de intervalos, deve utilizar o componente comparador introdutor de tabela de intervalos.

O Introdutor de tabela de intervalos

O componente introdutor da tabela de intervalos tem um conjunto de ramificações de saída. As seguintes filiais estão sempre disponíveis:

  • <property> Está abaixo da primeira direção
  • <property> Está em um intervalo
  • Valores de entrada não encontrados

Dependendo de onde se encontra o valor da propriedade numérica alimentado na tabela de intervalos, é utilizada a ramificação de saída correspondente.

Uma ramificação de saída adicional que lida com o último intervalo está disponível dependendo da configuração da classe de tabela de intervalos: quando você tiver selecionado sua classe de tabela de intervalos a ser ilimitada para o último intervalo, a ramificação de saída é chamada

<property> Encontrado no último intervalo sem limite

No entanto, se você configurar sua classe de tabela de intervalos para ser limitada, ter seu valor numérico encontrado no último intervalo é o mesmo que encontrá-lo "em um intervalo". Ao mesmo tempo, a ramificação "<property> Found in Last Unbounded Range" não faz sentido, pois não há um último intervalo ilimitado. Portanto, essa filial é substituída por:

<property> Está acima do último limite definido

A tabela seguinte resume isso:

Síntese de configurações razoáveis

Nome da agênciaO último intervalo é ilimitadoO último intervalo é limitado
<property> Está abaixo da primeira direção
<property> Está em um intervalo
<property> Encontrado no último intervalo sem limite
<property> Está acima do último limite definido
Valores de entrada não encontrados

Criação de uma tabela de intervalos

No vídeo a seguir, Melissa mostrará ao colega Jonathan como criar uma nova classe de tabela de intervalos no SAP Convergent Charging.

Agora que Jonathan aprendeu a criar uma classe de tabela de intervalos, Melissa agora irá treiná-lo a criar uma tabela range baseada na nova classe de tabela de intervalos que ele acabou de criar. Ele preencherá a tabela com as informações de preço necessárias para suportar o uso da Largura de Banda do serviço de seleção na nuvem.