Breakback with rounded integer numbers

Hi,

Is it possible to set a Breakback function with auto-rounding?

We're working on a project where exploiting breakback is useful.

Product units should be integer, never fractional, but we can't find how to auto round numbers derived from breakback function without setting a process.

Is there a way to let user insert a number at Product Family (ex. 100 units) and force the breakback function to compute integer numbers at Product level (ex. Product 1: 33 units, Product 2: 33 units, Product 3: 34 units)?

Thank you for your kind help,

Michele

Tagged:

Answers

  • Hi @MicheleVendemini,

    I have come up with something, is this what you are looking for?

    what this module does is that, first the decimals (the difference) are separated from the units input (Unit IP line item) and take the summary of it (Unit Deci) and then add that summary to the last child of the product family list, in the example I have given its "prod 3".

  • Hi @Rajat26 ,

    First of all, thank you for your help and patience.

    The proposed solution gets problematic when the decimals are 0.5, as for a total of 102 divided by prod 1, prod 2, prod 3 and prod 4 (25.5 considering decimals).

    Your result, if I understand it correctly, will lead to:

    Total: 102

    Prod 1: 25

    Prod 2: 25

    Prod 3: 25

    Prod 4: 27.

    A desired result in this case would be an array of values like 25,26,25,26, minimizing the differences in splitting values.

    Our workaround to overcome this problem is:

    Format

    Formula

    Summary

    Applies To

    Time Scale

    Time Range

    SYS01 Child

    Child list

    Not Applicable

    Not Applicable

    Parent

    Parent list

    None

    -

    Not Applicable

    Not Applicable

    Counter

    Number

    1

    Sum

    Not Applicable

    Not Applicable

    Rank

    Number

    RANK(Counter, ASCENDING, SEQUENTIAL, TRUE, Child)

    None

    -

    Not Applicable

    Not Applicable

    Formula

    Applies To

    Breakback

    CALC01 Sales Plan

    Child List

    Sales Plan

    Format: NUMBER

    Summary: Sum

    -

    TRUE

    ▼ Rounding Line Items ▼

    -

    FALSE

    Round Nearest

    Format: NUMBER

    Summary: None

    ROUND(Sales Plan, 0, NEAREST, NORMAL)

    -

    FALSE

    Round Down

    Format: NUMBER

    Summary: None

    ROUND(Sales Plan, 0, DOWN, NORMAL)

    -

    FALSE

    Round Up

    Format: NUMBER

    Summary: None

    ROUND(Sales Plan, 0, UP, NORMAL)

    -

    FALSE

    Δ Round Down - Input Value

    Format: NUMBER

    Summary: None

    Sales Plan[SUM: 'SYS01 Child'.Parent] - 'Round Down'[SUM: 'SYS01 Child'.Parent]

    Parent List

    FALSE

    Receive units for rounding?

    Format: BOOLEAN

    Summary: None

    IF
    'Counter Round Up = Round Nearest'[LOOKUP:

    'SYS01 Child'.Parent] >= 'Δ Round Down - Input Value'[LOOKUP: 'SYS01 Child'.Parent]
    THEN
    'Counter Round Down = Round Nearest' = 0
    AND
    'SYS01 Child'.Rank <= ROUND('Δ Round Down - Input Value'[LOOKUP: 'SYS01 Child'.Parent], 0, NEAREST) + 'Counter Round Down = Round Nearest'[LOOKUP: 'SYS01 Child'.Parent]
    ELSE
    'SYS01 Child'.Rank <= ROUND('Δ Round Down - Input Value'[LOOKUP: 'SYS01 Child'.Parent], 0, NEAREST)

    -

    FALSE

    Rounding Breakback

    Format: NUMBER

    Summary: Sum

    IF NOT 'Receive units for rounding?' THEN 'Round Down' ELSE 'Round Down' + 1

    -

    FALSE

    Counter Round Down = Round Nearest

    Format: NUMBER

    Summary: Sum

    IF 'Round Down' <> 'Round Nearest' THEN 0 ELSE 1

    -

    FALSE

    Counter Round Up = Round Nearest

    Format: NUMBER

    Summary: Sum

    IF 'Round Up' <> 'Round Nearest' THEN 0 ELSE 1

    -

    FALSE

    Anyway, we need to use breakback with integer numbers all across the model.

    Our workaround would result in a lot of occupied RAM and an uneasy maintenance and bug fixing situation.

    Thank you anyway for the effort and for the help!

    Michele