Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


 

 

...

Contents

Table of Contents
alltrue
depth4
indent14px
excerpttrue


The following bundles are part of this framework:

  • DurationBundle
  • EventBundle
  • DataBundle
  • ForwardBundle (core 8.5 and later)
  • CounterBundle (core 8.10 and later)

Bundles that are part of this framework have the following properties:

  • A workflow can be specified that checks whether this bundle can actually be used for this particular billing record (useful for restricting bundle use to e.g. community calls).
  • Alert levels can be specified. When the bundle has used a specified percentage of its capacity, then an alert workflow is activated.
  • Temporary change of rating code and rating key (not for the CounterBundle). This can be used to change the plan element that the rating process uses, e.g. for rating at discount prices.
  • A billing record can be rated against more than one bundle. Used if a billing record uses the final units of a bundle, but the whole billing record is not rated yet.

Restricting Bundles to Specific Tasks

Icon

From Core 8.7, this functionality is replaced by Bundle Pre-rate Strategies (internal link).

A workflow that restricts the billing records to which this bundle can apply can be specified for a bundle. This is done by specifying the workflow hookpoint key in the bundle PARAMETERS by setting a parameter called "VALIDATION.HOOK", e.g. "VALIDATION.HOOK=myHookpointKey".

...

The

...

workflow

...

started

...

has

...

the

...

following

...

properties:

...

Workflow Attribute

Description

Context objects

"SUBSCRIPTION"
"SUBSCRIPTION_BUNDLE"

...


"BILLING_RECORD"

...

Return

...

values

...

The

...

HookpointResult

...

must contain

...

the

...

key

...

"CONTINUE"

...

which

...

must contain

...

the

...

value

...

"Y"

...

, if

...

the

...

bundle

...

is

...

to

...

be

...

used.

...


Otherwise

...

the

...

bundle

...

will

...

be

...

skipped.

...

If the "VALIDATION.HOOK"

...

is

...

not

...

defined,

...

if

...

the

...

workflow

...

does

...

not

...

exist,

...

or

...

if

...

the

...

returned

...

HookpointResult

...

is

...

null,

...

then

...

the

...

bundle

...

will

...

always

...

be

...

used

...

in

...

the

...

rating.

...

Alert Levels

Icon

As from Vs. 8.20

...

the

...

syntax

...

for

...

this

...

will

...

be

...

the

...

same

...

as

...

for

...

...

...

...

.
This will still be set via bundle parameters for RestrictActive bundles.

When a specified percentage of the bundle has been used, this can activate an alert workflow. More than one percentage can be defined. This is done by specifying the alert percentages in the bundle's PARAMETERS by setting a parameter called "ALERT_LEVEL".

...

The

...

values

...

of

...

this

...

parameter

...

is

...

a

...

comma

...

-separated

...

list

...

of

...

numbers

...

(percentages),

...

e.g.

...

"ALERT_LEVEL=25,

...

50,

...

75,

...

100"

...

The

...

alert

...

workflow to be started is defined in the bundle's

...

PARAMETERS

...

by

...

setting

...

a

...

parameter

...

called

...

"ALERT_HOOKPOINT"

...

(e.g.

...

"ALERT_HOOKPOINT=myAlertWorkflowHookpointKey"),

...

and

...

it

...

has

...

the

...

following

...

properties:

...

Workflow Attribute

Description

Context objects

"SUBSCRIPTION"
"SUBSCRIPTION_BUNDLE"

...


"BORDER"

...

(which

...

is

...

the

...

value

...

of

...

the

...

percentage

...

that

...

triggered

...

the

...

workflow,

...

in

...

the

...

form

...

of

...

Java-type

...

Long)

...


"INVOKED_BEFORE_FOR_THIS_CDR"

...

(the

...

type

...

is

...

boolean)

...

Return values

No return value is needed. Everything that should happen is performed or started by the workflow.


An alert workflow is only started if everything is in place (parameters defined, percentage level passed, etc.). The start of an alert workflow has no influence on the rating process (except if the workflow is designed to have an impact).

One single billing record can pass several 'borders'. When this happens, the alert workflow triggers once for each border passed in the opposite order! For the first workflow activation the context object "INVOKED_BEFORE_FOR_THIS_CDR"

...

is

...

'false',

...

for

...

all

...

the

...

following

...

it

...

will

...

be

...

'true',

...

e.g.

...

if

...

ALERT_LEVEL=25,

...

50,

...

75,

...

100

...

and

...

a

...

single

...

billing

...

record

...

passes both

...

the

...

50

...

and

...

75

...

borders,

...

the

...

alert

...

workflow

...

will

...

be

...

activated

...

twice

...

-

...

first

...

with

...

BORDER=75

...

and

...

INVOKED_BEFORE_FOR_THIS_CDR=false,

...

then

...

with

...

BORDER=50

...

and

...

INVOKED_BEFORE_FOR_THIS_CDR=true.

...

(Temporary)

...

Change

...

of

...

Rating

...

Code

...

and

...

Rating

...

Key

DataBundle,

...

DurationBundle

...

and

...

EventBundle

...

In

...

the

...

rating

...

process,

...

when

...

a

...

bundle

...

to

...

be

...

used

...

has

...

been

...

found,

...

the

...

rating

...

code

...

and

...

rating

...

key

...

of

...

the

...

billing

...

record

...

can

...

be

...

changed

...

(temporarily).

...

If

...

this

...

is

...

done

...

the

...

billing

...

record

...

is

...

rated

...

against

...

other

...

plan

...

elements

...

which

...

can

...

hold

...

e.g.

...

a

...

discount price.

...

A

...

bundle

...

can

...

be

...

used

...

fully

...

while

...

rating

...

a

...

billing

...

record.

...

This

...

means

...

that

...

part

...

of

...

the

...

billing

...

record

...

should

...

be

...

rated

...

in

...

one

...

way,

...

while

...

the

...

rest

...

should

...

be

...

rated

...

in

...

another

...

way.

...

Therefore

...

it

...

is

...

possible

...

to

...

define

...

two

...

different

...

temporary

...

values

...

for

...

rating

...

code

...

and

...

rating

...

key:

...

One

...

to

...

be

...

used

...

for

...

the

...

part

...

inside

...

the

...

bundle,

...

and

...

one

...

for

...

the

...

part

...

outside

...

the

...

bundle.

...

The

...

temporary

...

rating

...

code

...

and

...

rating

...

key

...

values

...

can

...

be

...

defined

...

in

...

two

...

ways:

...

Through

...

setup

...

of

...

parameters

...

in

...

the

...

bundle

...

PARAMETERS

...

field,

...

or

...

through

...

activation

...

of

...

a

...

workflow.

...

The

...

two

...

methods

...

can

...

be

...

combined,

...

but

...

if

...

a

...

parameter

...

is

...

defined

...

in

...

both

...

ways,

...

then

...

the

...

workflow

...

value

...

takes

...

precedence.

...

The

...

bundle

...

PARAMETER

...

field

...

parameters

...

have

...

the

...

following

...

names:

...

"IN.RATINGCODE"

...

e.g.

...

"IN.RATINGCODE=COMMUNITY-VOICE-CALL"

...

"IN.RATINGKEY"

...

e.g.

...

"IN.RATINGKEY=COMMUNITY-GOLDEN-BUNDLE"

...

"OUT.RATINGCODE"

...

e.g.

...

"OUT.RATINGCODE=COMMUNITY-VOICE-CALL-BUNDLE-FULL"

...

"OUT.RATINGKEY"

...

e.g.

...

"OUT.RATINGKEY=COMMUNITY-GOLDEN-BUNDLE-BUNDLE-FULL"

...

The

...

workflow

...

hookpoint

...

key

...

is

...

defined

...

in

...

the

...

bundle

...

PARAMETER

...

field

...

by

...

the

...

parameter

...

"KEY.HOOK",

...

e.g.

...

"KEY.HOOK=myTempRatingValuesHookpointKey".

...

The

...

workflow

...

has

...

the

...

following

...

attributes:

...

Workflow Attribute

Description

Context objects

"SUBSCRIPTION"
"SUBSCRIPTION_BUNDLE"

...


"BILLING_RECORD"

...


"INCODE"

...

(A

...

String

...

with

...

the

...

value

...

of

...

parameter

...

"IN.RATINGCODE")

...


"INKEY"

...

(A

...

String

...

with

...

the

...

value

...

of

...

parameter

...

"IN.RATINGKEY")

...


"OUTCODE"

...

 (A

...

String

...

with

...

the

...

value

...

of

...

parameter

...

"OUT.RATINGCODE")

...


"OUTKEY"

...

(A

...

String

...

with

...

the

...

value

...

of

...

parameter

...

"OUT.RATINGKEY")

...

Return

...

values

...

The

...

HookpointResult

...

can

...

contain

...

the

...

following

...

keys:

...


"INCODE"

...

 (The

...

key

...

to

...

the

...

new

...

value

...

of

...

inside

...

bundle

...

rating

...

code)

...


"INKEY"

...

(The

...

key

...

to

...

the

...

newvalue

...

of

...

inside

...

bundle

...

rating

...

key)

...


"OUTCODE"

...

 (The

...

key

...

to

...

the

...

newvalue

...

of

...

outside

...

bundle

...

rating

...

code)

...


"OUTKEY"

...

(The

...

key

...

to

...

the

...

newvalue

...

of

...

outside

...

bundle

...

rating

...

key)

...

Icon

In core versions < 8.6:

...

Do

...

not

...

set

...

the

...

combination

...

of

...

"inside

...

bundle

...

rating

...

code"

...

and

...

"inside

...

bundle

...

rating

...

key"

...

to

...

the

...

values

...

that

...

the

...

billing

...

record

...

already

...

has,

...

since

...

this

...

will

...

create

...

an

...

indefinite

...

loop

...

!

If neither of the two methods for changing rating code and rating key is used, or if they define the value to be an empty String, then the default values are the following:

Type

Default Value

Inside bundle, rating code

"BUNDLE"

Inside bundle, rating key

The original value

Outside bundle, rating code

The original value

Outside bundle, rating key

The original value

Icon

This means that you should ALWAYS define the "inside bundle rating code" for the DataBundle, DurationBundle and EventBundle!  

ForwardBundle

The bundle PARAMETER field parameters have the following names:

"RATINGCODE"

e.g. "RATINGCODE=MY-NEW-RATINGCODE"

...

"RATINGKEY"

...

e.g.

...

"RATINGKEY=MY-NEW-RATINGKEY"

...

Icon

In core versions < 8.6:

...

Do

...

not

...

set

...

the

...

combination

...

of

...

"inside

...

bundle

...

rating

...

code"

...

and

...

"inside

...

bundle

...

rating

...

key"

...

to

...

the

...

values

...

that

...

the

...

billing

...

record

...

already

...

has,

...

since

...

this

...

will

...

create

...

an

...

indefinite

...

loop

...

!

CounterBundle

Changing the rating code and rating key is not supported for the CounterBundle.

Rollover functionality

The RestrictActive framework allows bundles to be configured to allow the use of Core rollover functionality.
This functionality requires the following parameters to be set up:

Name

Description

ROLLOVER.PERIOD.ORDER

Defines whether older or newer surplus credit should be used first. Two possible values are possible: NEWER_FIRST and OLDER_FIRST

ROLLOVER.USAGE.MODE

Indicates whether surplus credit should be used before or after the SubscriptionBundles. Again two values are possible: USE_ROLLOVER_BEFORE_BUNDLE,

...

USE_ROLLOVER_AFTER_BUNDLE

...

ROLLOVER.PERIODS

...

Amount

...

of

...

previous

...

SubscriptionBundles

...

used

...

in

...

rollover.

...

In

...

other

...

words,

...

the

...

number

...

defines

...

how

...

many

...

times

...

surplus

...

credit

...

can

...

be

...

rolled

...

over

...

In

...

addition

...

to

...

the

...

parameters,

...

VALUE

...

3

...

has

...

to

...

be

...

set

...

up

...

too.

...

It

...

should

...

contain

...

the

...

maximum

...

amount

...

of

...

values,

...

that

...

can

...

be

...

used

...

in

...

the

...

rollover

...

process.

...

Rating a Billing Record Against more than one Bundle ("Overflow")

...

The

...

bundles

...

in

...

the

...

RestrictActive

...

framework

...

have

...

an

...

"overflow"

...

function.

...

  This

...

means

...

that

...

if

...

all

...

units

...

of

...

a

...

bundle

...

are

...

used

...

while

...

a

...

billing

...

record

...

is

...

being

...

rated

...

the

...

rating

...

will

...

continue

...

against

...

the

...

next

...

bundle

...

in

...

the

...

priority

...

listing.

...

  If

...

no

...

bundle

...

is

...

available,

...

rating

...

is

...

done

...

using

...

the

...

default

...

prices

...

offered

...

in

...

the

...

rate

...

plan.

...

Example:

...

Bundle

...

1

...

(B1)

...

has

...

50

...

free

...

units,

...

and

...

bundle

...

2

...

(B2)

...

has

...

1000

...

free

...

units.

...

A

...

billing

...

record

...

with

...

a

...

usage

...

of

...

200

...

units

...

is

...

to

...

be

...

rated.

...

The

...

billing

...

record

...

can

...

be

...

rated

...

against

...

both

...

of

...

the

...

bundles,

...

but

...

it

...

tries

...

B1

...

first

...

because

...

B1

...

has

...

a

...

higher

...

priority

...

than

...

B2.

...

The

...

result

...

is

...

that

...

50

...

units

...

are

...

rated

...

in

...

B1,

...

and

...

150

...

units

...

are

...

rated

...

in

...

B2.

...


In

...

the

...

example

...

above,

...

when

...

the

...

last

...

150

...

units

...

are

...

passed

...

on

...

from

...

B1,

...

then

...

the

...

rating

...

code

...

and

...

rating

...

key

...

can

...

be

...

changed

...

for

...

those

...

150

...

units.

...

See

...

how

...

to

...

(temporarily)

...

change

...

the

...

"outside

...

bundle

...

rating

...

code"

...

and

...

"outside

...

bundle

...

rating

...

key"

...

elsewhere

...

on

...

this

...

page.

...