cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

SAC Data Action for Allocation

Aastha30
Newcomer
0 Likes
174

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:

  • Allocation_Cycle
  • Target Version (Default)

The user can either select a single allocation cycle or choose a hierarchy to process multiple cycles.

Validation Rules for Allocation

  1. For the selected allocation cycle(s), the system should validate whether the Cycle Active flag = "Y". If the cycle is not active, it should be excluded from processing.
  2. Allocation cycles should be processed based on their Stage, in ascending order (i.e., from Stage "1" through Stage "N").

Logic for Allocation

  1. Reading of Drivers Data  - Driver data is stored under:
    • Allocation Cycle = "NO_CYCLE"
    • Account = CYCLE.DRIVERS (property of Allocation Cycle dimension)
    •  

       

      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:

      • Allocation Cycle
      • Account
      • Time (excluding Cost Object)

     

  2. Reading of Non Allocated Data -  Below filter to read non allocated data >

                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

  • Loop through Non-Allocated Data
  • Loop through Driver Data
  • Use the aggregated driver values to perform allocation calculations
  • Each record from Non-Allocated Data should be processed against all relevant driver records for the respective allocation cycle.
  1. Posting Results
  • Write back the calculated allocation data to the target version.

@N1kh1l  - Could you please help on this.

 

Best regards,

Aastha

Accepted Solutions (0)

Answers (1)

Answers (1)

N1kh1l
Active Contributor
0 Likes

@Aastha30 

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