2 weeks ago
Dear Experts,
Could you please assist in developing the Data Action logic for the following requirement?
Dimension: ALLOC_CYCLE
This dimension contains the required properties.
ID | Stage | Active | Driver | Parenth |
AC_CYCLE1 | 1 | Y | D_DRIVER1 | ALL_AC |
AC_CYCLE2 | 2 | N | D_DRIVER2 | ALL_AC |
AC_CYCLE3 | 6 | Y | D_DRIVER3 | ALL_AC |
AC_CYCLE4 | 8 | Y | D_DRIVER1 | ALL_AC |
AC_CYCLE5 | 5 | Y | D_DRIVER2 | ALL_AC |
Data Action Parameters:
The user can either select a single allocation cycle or choose a hierarchy to process multiple cycles.
Validation Rules for Allocation
Logic for Allocation
|
| Date | P01 (2026) | P02 (2026) | P03 (2026) | P04 (2026) | P05 (2026) | P06 (2026) | P07 (2026) | P08 (2026) | P09 (2026) | P10 (2026) | P11 (2026) | P12 (2026) |
Account | Allocation Cycle | Costobject |
|
|
|
|
|
|
|
|
|
|
|
|
D_DRIVER1 | NO_CYCLE | YZETLYJGKC | 0.007788 | 0.855474 | 0.084999 | 0.081403 | 0.529231 | 0.013347 | 0.562226 | 0.05978 | 0.039798 | 0.179218 | 0.696424 | 0.914806 |
D_DRIVER1 | NO_CYCLE | XPUCXNVFHA | 0.959009 | 0.891055 | 0.898892 | 0.616775 | 0.233873 | 0.668626 | 0.890584 | 0.993324 | 0.146145 | 0.780597 | 0.93994 | 0.158102 |
D_DRIVER1 | NO_CYCLE | TMRJJUDRYC | 0.218391 | 0.15194 | 0.139433 | 0.929238 | 0.946945 | 0.27212 | 0.204468 | 0.588206 | 0.71644 | 0.120868 | 0.391042 | 0.897587 |
D_DRIVER1 | NO_CYCLE | YLULXTHXZK | 0.040966 | 0.153406 | 0.270626 | 0.199465 | 0.15652 | 0.190965 | 0.907461 | 0.650826 | 0.225456 | 0.269511 | 0.225198 | 0.662109 |
D_DRIVER2 | NO_CYCLE | YZETLYJGKC | 0.98477 | 0.018141 | 0.792378 | 0.790975 | 0.245779 | 0.716081 | 0.290322 | 0.460564 | 0.007045 | 0.827908 | 0.313616 | 0.668985 |
D_DRIVER2 | NO_CYCLE | XPUCXNVFHA | 0.491832 | 0.808881 | 0.949725 | 0.542514 | 0.350384 | 0.088891 | 0.104948 | 0.578834 | 0.278451 | 0.567371 | 0.897166 | 0.086918 |
D_DRIVER2 | NO_CYCLE | TMRJJUDRYC | 0.371288 | 0.272883 | 0.761732 | 0.526606 | 0.58493 | 0.432601 | 0.001278 | 0.63877 | 0.387049 | 0.481687 | 0.089845 | 0.661319 |
D_DRIVER2 | NO_CYCLE | YLULXTHXZK | 0.940818 | 0.82579 | 0.383088 | 0.813167 | 0.507652 | 0.300977 | 0.538091 | 0.261327 | 0.253261 | 0.086457 | 0.496923 | 0.194887 |
D_DRIVER3 | NO_CYCLE | YZETLYJGKC | 0.176089 | 0.198496 | 0.513105 | 0.899848 | 0.405562 | 0.198768 | 0.788868 | 0.820951 | 0.179248 | 0.298045 | 0.42795 | 0.085083 |
D_DRIVER3 | NO_CYCLE | XPUCXNVFHA | 0.332141 | 0.185871 | 0.567554 | 0.110513 | 0.883218 | 0.657713 | 0.286893 | 0.948603 | 0.960924 | 0.707956 | 0.176888 | 0.526598 |
D_DRIVER3 | NO_CYCLE | TMRJJUDRYC | 0.275606 | 0.123305 | 0.974518 | 0.515328 | 0.567002 | 0.269886 | 0.318641 | 0.613677 | 0.243595 | 0.296181 | 0.284107 | 0.321532 |
D_DRIVER3 | NO_CYCLE | YLULXTHXZK | 0.648359 | 0.378021 | 0.071217 | 0.400221 | 0.043744 | 0.242131 | 0.717119 | 0.13229 | 0.034844 | 0.040659 | 0.336876 | 0.008073 |
D_DRIVER4 | NO_CYCLE | YZETLYJGKC | 0.164455 | 0.721928 | 0.723193 | 0.027225 | 0.904189 | 0.760434 | 0.495185 | 0.075951 | 0.247792 | 0.021627 | 0.215113 | 0.347149 |
D_DRIVER4 | NO_CYCLE | XPUCXNVFHA | 0.936303 | 0.580602 | 0.173549 | 0.080032 | 0.666231 | 0.015653 | 0.582341 | 0.824657 | 0.246926 | 0.582032 | 0.334287 | 0.446345 |
D_DRIVER4 | NO_CYCLE | TMRJJUDRYC | 0.612572 | 0.842846 | 0.254031 | 0.936815 | 0.366869 | 0.102575 | 0.284472 | 0.083911 | 0.536845 | 0.260322 | 0.786158 | 0.817653 |
D_DRIVER4 | NO_CYCLE | YLULXTHXZK | 0.789067 | 0.89359 | 0.493027 | 0.277655 | 0.746934 | 0.526434 | 0.878852 | 0.359162 | 0.101711 | 0.20185 | 0.477477 | 0.714554 |
D_DRIVER5 | NO_CYCLE | YZETLYJGKC | 0.479361 | 0.940726 | 0.221336 | 0.183893 | 0.774026 | 0.081278 | 0.999697 | 0.303012 | 0.143791 | 0.166389 | 0.518606 | 0.066061 |
D_DRIVER5 | NO_CYCLE | XPUCXNVFHA | 0.526565 | 0.719342 | 0.540826 | 0.357177 | 0.936581 | 0.828865 | 0.494045 | 0.668076 | 0.14028 | 0.735383 | 0.664267 | 0.618076 |
D_DRIVER5 | NO_CYCLE | TMRJJUDRYC | 0.199597 | 0.372548 | 0.408633 | 0.207466 | 0.443836 | 0.09373 | 0.188007 | 0.365207 | 0.724277 | 0.941259 | 0.556049 | 0.830857 |
D_DRIVER5 | NO_CYCLE | YLULXTHXZK | 0.155097 | 0.571414 | 0.938727 | 0.843546 | 0.792186 | 0.927327 | 0.034974 | 0.779268 | 0.432636 | 0.257151 | 0.262203 | 0.714602 |
Example:
If the user selects Allocation Cycle = AC_CYCLE4, its corresponding driver data is stored under Account = DRIVER2.
Requirement:
Retrieve driver data for each selected allocation cycle and aggregate/summarize it by:
Filter - Allocation Cycle ≠ Current Processing Cycle
|
| Date | P01 (2026) | P02 (2026) | P03 (2026) | P04 (2026) | P05 (2026) | P06 (2026) | P07 (2026) | P08 (2026) | P09 (2026) | P10 (2026) | P11 (2026) | P12 (2026) |
Account | Allocation Cycle | Costobject |
|
|
|
|
|
|
|
|
|
|
|
|
100001 | AC_CYCLE1 | YZETLYJGKC | 389856 | 868585 | 508690 | 404820 | 35911 | 62869 | 880594 | 681904 | 195872 | 914810 | 128550 | 116960 |
100002 | AC_CYCLE3 | XPUCXNVFHA | 731502 | 972995 | 162733 | 493933 | 489458 | 828327 | 857149 | 948476 | 406478 | 976030 | 970460 | 180498 |
100003 | AC_CYCLE5 | TMRJJUDRYC | 272880 | 708077 | 395376 | 302071 | 948950 | 227214 | 822547 | 150936 | 692395 | 602681 | 218241 | 887335 |
100004 | AC_CYCLE4 | YLULXTHXZK | 978500 | 457429 | 872069 | 627529 | 747837 | 479400 | 922797 | 246061 | 633826 | 201060 | 613361 | 711299 |
100005 | AC_CYCLE5 | YZETLYJGKC | 23857 | 249138 | 733895 | 586434 | 945063 | 277981 | 25903 | 971371 | 913469 | 233813 | 664615 | 672946 |
Example:
If AC_CYCLE4 is being processed, its data should be excluded from the source dataset.
In this case system should not pick “AC_CYCLE4” data as we passed this as a parameter selection
3. Allocation Processing
@N1kh1l - Could you please help on this.
Best regards,
Aastha
Request clarification before answering.
I would advise to write this in blocks or stages. First process your drivers. If they do change frequently you could separate this out from main logic to prevent it eating your execution time in every run.
Now for the main Allocation logic, scope on pre allocated data and drivers you processed in previous step.
You can structure it as below.
IF[ALLOC_CYCLE].[p/Active]="Y" THEN // Filter out only Active Allocation cycles.
IF [ALLOC_CYCLE].[p/Active]="1" and [ALLOC_CYCLE] !=[ALLOC_CYCLE] THEN // Repeat this for all stages in the sequence 1,2 ..
..... Your allocation multiplication here
ENDIF
ENDIF
Hope this helps !
Nikhil
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 15 | |
| 9 | |
| 6 | |
| 4 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.