cancel
Showing results for 
Search instead for 
Did you mean: 

SAP PCM 10. Resource driver calculation.

0 Kudos

When creating rule to Resource Driver to calculate RD using  REASSACTMENTLINEITEMVALUE table (grid). We tried to use POSTREASSIGNLINEITEMVALUE, REASSIGNACTIVITYLINEITEMVALUE function’s in "Detailed Resource Driver Split Rule". When we running this function’s our system begin work very slowly.

We tried to use RESTRICTDIMENSION, RESTRICTDIMENSIONPARENT function’s to limit scope. When we using it, calculation result is null.

Rule code:

Function CellValue

RestrictDimensionParent("LINE ITEM","GR106")

    CellValue = ReassignActivityLineItemValue(,,"CO7200")

End Function

Table REASSACTMENTLINEITEMVALUE content:

Periods

Responsobility Center

Line Item

Target Responsobility Center

Target Activity

ReassignActivity

LineItemValue

201201

CO7200

4301_98_0000

CO7200

UX13

-56545018

201201

CO7200

7101_98_0000

CO7200

UX13

-83379000

201201

CO7200

7102_98_0000

CO7200

UX13

-133716000

201201

CO7200

4301_98_0000

CO7201

UI01

514902,79

201201

CO7200

7101_98_0000

CO7201

UI01

759254,87

201201

CO7200

7102_98_0000

CO7201

UI01

1217627

201201

CO7200

4301_98_0000

CO7205

UI01

14980562

201201

CO7200

7101_98_0000

CO7205

UI01

22089732

201201

CO7200

7102_98_0000

CO7205

UI01

35425594

201201

CO7200

4301_98_0000

CO7207

UI01

10556919

201201

CO7200

7101_98_0000

CO7207

UI01

15566806

201201

CO7200

7102_98_0000

CO7207

UI01

24964693

201201

CO7200

4301_98_0000

CO7211

UI01

2579500,8

201201

CO7200

7101_98_0000

CO7211

UI01

3803627,7

201201

CO7200

7102_98_0000

CO7211

UI01

6099927,9

201201

CO7200

4301_98_0000

CO7212

UI01

264085,05

201201

CO7200

7101_98_0000

CO7212

UI01

389409,15

201201

CO7200

7102_98_0000

CO7212

UI01

624500,58

201201

CO7200

4301_98_0000

CO7214

UI01

5616786,1

201201

CO7200

7101_98_0000

CO7214

UI01

8282285,9

201201

CO7200

7102_98_0000

CO7214

UI01

13282411

201201

CO7200

4301_98_0000

CO7215

UI01

169344,79

201201

CO7200

7101_98_0000

CO7215

UI01

249708,99

201201

CO7200

7102_98_0000

CO7215

UI01

400461,59

201201

CO7200

4301_98_0000

CO7217

UI01

3472550,7

...

Maybe we using wrong function’s, or wrong using this function’s? Help please.

Accepted Solutions (1)

Accepted Solutions (1)

thomas_dubreuil
Employee
Employee
0 Kudos

Hi Ivan,

The only way to calculate Resource Drivers Splits to be equal to a post-reassignment activity value in PCM, is to use several versions or to use an export-import console script. You might also need 1 driver for each lineitem depending on what you are trying to achieve.

If you go for the versions, the first version will calculate the reassigned values. The rule restricted on the second version will then be able to 'read' these values from the first version, populate the ressourcedriversplits and perform the full calculation.

Another issue with the rule that you are trying to setup is that the restriction is on the line item dimension, which is not part of the grid value you are calculating (resourcedriversplits are by version, period, RC and activity).

Allocating costs to the prorata of already allocated costs means that the business rule is not mature enough and you migth want to find a better suited driver. But this is another debate.

Hope this helps

Best regards

Thomas

0 Kudos

Hi, Thomas.

Tried with version's it work's . Thank you very much!

One question:

can you explain why it don't work inside one version, and work in 2 ?

thomas_dubreuil
Employee
Employee
0 Kudos

Ivan,

This per construction of the calculation engine.

best regards,

Thomas

0 Kudos

ok . Thank you for answer.

we calculated RD on the different version than version on what our data stored.

How can i use the calculated RD in Resource Driver Assignment ? (when RD is stored on the other version that data)

PS when i tried to copy RD data from one RD member to another, changing version to version on what data is stored, the server goes down .

Former Member
0 Kudos

Hi Thomas,

I need help in applying rule to Resource Driver splits. This rule is in the same model and not cross models.

The Resource driver is calculated using rule = per unit driver multiplied by product mix using Detailed Resource Driver rule.

I need to apply Resource driver split to various activities. When i use Detailed resource driver split rule, If there are 5 activities , the rule against a RD gets applied to all activities instead of the desired activity.

Please let me ho to apply rules to Resource driver split rules for specific activities only and not all activities.

Thanks,

Sweta

thomas_dubreuil
Employee
Employee
0 Kudos

Hi Sweta

By default vbscript rules apply to every combination of the grid value dimension. The simplest way to restrict the application of the rules is by using the key words restrictdimension and restrictdimensionparent.

In your case you could either use restrictdimension as many times as needed (once for each activity), or group these activities with a dimnsion attribute then use restrictdimensionparent with this attribute.

Best regards,

Thomas

Former Member
0 Kudos

Thanks for the quick response.

I used RestrictDimension and was able to apply a rule to a specific activity.

But lets assume Resource driver value for labor = 40000

Act 1 = 10000

Act 2 =  20000

Act 3 = 7000

I wrote the below script

Function CellValue

RestrictDimension("Activities","Act1")

CellValue = 10000

End Function

with the above script , I am able to assign 10000 to Act 1, but how do I assign 20000 to Act 2 and 3000 to Act3.

Would really appreciate your help on this.

Thanks,

Sweta

thomas_dubreuil
Employee
Employee
0 Kudos

Sweta

Please do not forget that populating resource driver values or splits (or activity driver values) instead of using vbscript rules is much faster when it is time to calculate the model.

The key words supported by VBScript are supported by PCM as it is using by default the windows library. You can use variables and a select...case statement. The rule would then look like this:

Function cellvalue()

     RestrictDimension("Activities","Act1")

     RestrictDimension("Activities","Act2")

     RestrictDimension("Activities","Act3")

     Dim RDS

     select case itemname(currentactivity) 'I am guessing that "Actn" is the default alias

          case "Act1"

               RDS=10000

          case "Act2"

               RDS=20000

          case "Act3"

               RDS=70000

     end select

     CellValue=RDS

End function

regards,

Thomas

Sorry for double posting

Former Member
0 Kudos

Hi Thomas,

It works. Thanks a Ton.

Have been trying to figure this out since last two weeks and it is now solved in a matter of two days.

Thank you so much

Regards,

Sweta

Answers (1)

Answers (1)

thomas_dubreuil
Employee
Employee
0 Kudos

Sweta

Please do not forget that populating resource driver values or splits (or activity driver values) instead of using vbscript rules is much faster when it is time to calculate the model.

The key words supported by VBScript are supported by PCM as it is using by default the windows library. You can use variables and a select...case statement. The rule would then look like this:

Function cellvalue()

     RestrictDimension("Activities","Act1")

     RestrictDimension("Activities","Act2")

     RestrictDimension("Activities","Act3")

     Dim RDS

     select case itemname(currentactivity) 'I am guessing that "Actn" is the default alias

          case "Act1"

               RDS=10000

          case "Act2"

               RDS=20000

          case "Act3"

               RDS=70000

     end select

     CellValue=RDS

End function

regards,

Thomas