Divisor de números
O componente divisor mais proeminente é provavelmente o separador de número. O seu objetivo é dividir um valor numérico em duas partes em um determinado valor limiar.
Vejamos um exemplo:
Suponha que seu cliente usou seu serviço para um determinado número de unidades. O assinante do serviço recebeu uma determinada quantidade de unidades de utilização de serviço gratuito, que você precisa liquidar em relação à utilização reportada pelo sistema de medição antes de poder determinar quanto cobrar.
SERVICE_USAGE: X Units
FREE_USAGE: Y units
Uma vez que a sua lógica de cálculo do preço não pode dizer se a utilização do serviço ao cliente está abaixo ou acima do montante de utilização livre ainda disponível para o cliente, ela deve efetuar primeiro uma comparação. Dependendo do resultado, o cálculo aritmético correto precisa ser efetuado para que o resultado possa ser processado corretamente. Este cálculo pode ser:
- SERVICE_USAGE – FREE_USAGE se o volume de utilização de serviço gratuito ainda disponível for inferior à quantidade de serviço consumida. O resultado pode ser cobrado e o saldo de utilização de serviço gratuito será definido como 0.
- FREE_USAGE – SERVICE_USAGE se o volume de serviço gratuito ainda disponível for superior à quantidade de serviço consumida. O resultado será deduzido do saldo de uso gratuito e nada será cobrado.
Isto é bastante complicado, e o divisor pode ajudar a simplificar este cálculo. Na configuração, você selecionará um "Nome de propriedade" numérico contendo o número a ser dividido em duas partes. Como "Split Value", outra propriedade numérica precisa ser selecionada, que contém o limite no qual a primeira propriedade deve ser dividida. Considere que você também pode inserir um número estático aqui, mas como isso é bastante estático, isso geralmente não é efetuado.
O componente espera que você forneça os nomes das propriedades numéricas nas quais ele escreverá o resultado da operação de partição. A primeira propriedade receberá o valor de "Property Name" até "Split Value", enquanto a segunda receberá qualquer valor de "Property Name" além de "Split Value".
Vamos ver como o componente seria configurado para o exemplo fornecido acima.
A propriedade a ser dividida aqui é "SERVICE_USAGE". Como valor de partição, foi fornecido o contador "FREE_USAGE". O resultado da partição é escrito nas propriedades "USAGE_FREE_OF_CHARGE" e "USAGE_TO_CHARGE", respectivamente.
Vamos ser específicos e assumir que o cliente consumiu 7 unidades, enquanto o saldo de FREE_USAGE é 5 unidades. Das 7 unidades utilizadas, 5 unidades estão abaixo do valor limiar de 5 unidades ainda livres. Por isso, a característica USAGE_FREE_OF_CHARGE recebe o valor "5".
Das 7 unidades utilizadas 2 unidades estão acima de 5 unidades ainda livres. Por isso, a característica USAGE_TO_CHARGE recebe o valor "2".
O componente cria duas ramificações de saída, que são ambas executadas:
Considere que a característica "USAGE_FREE_OF_CHARGE" só está disponível na ramificação de saída denominada "SERVICE_USAGE: até FREE_USAGE", enquanto a característica USAGE_TO_CHARGE só está disponível na ramificação denominada "SERVICE_USAGE: Beyond FREE_USAGE". Como você pode ver a lógica restante que você precisa implementar é muito mais simples desta forma, como alguns dos cálculos aritméticos foram feitos pelo componente splitter para você.
Nota
Dependendo dos dados fornecidos como entradas para o componente, as características de saída USAGE_FREE_OF_CHARGE e USAGE_TO_CHARGE podem ser zero.