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

Did the logic script change in the newer BPC Support Packs?

Former Member
0 Kudos
161

Hello,

We just upgraded from Release 801 SP2 to Release 801 SP13 and our packages are failing.  We are getting an RUN_LOGIC error.  Why would we be seeing an error when running a package that worked correctly one week ago?

Thank you,

Robert

Accepted Solutions (0)

Answers (2)

Answers (2)

akos_beres
Contributor
0 Kudos

Robert,

As Vadim suggested, insert the logic script so we can look at the syntax.

Furthermore, when you say it ran a week ago ...  do you mean in the original system or in the already upgraded system it ran already once?

Akos

BTW ... glad to hear the logic scripts showed up in the restore!

Former Member
0 Kudos

Hi Akos,

I attached the script above.

The logic script had been coming over in all other restores to other but this one it did not.  I had to manually copy and paste all of them from our production environment to the sandbox environment.

Thanks,

Robert

former_member186338
Active Contributor
0 Kudos

Yes, some logic behavior may be changed, just read all script logic related notes SP3-SP13

And it's better to show the logic script you are running... The error itself means nothing...

Former Member
0 Kudos

Hello Vadim,

I have been looking through some of the notes but I have not seen anything yet that looks like it would have caused this.

I have attached the logic script and the Data Manager Package information

Thank you,

Robert

akos_beres
Contributor
0 Kudos

Robert,

It looks like 10HFM is a calculated member when the script logic is runs it literally just passes the entity in ... 

this line might need to be changed:

*FUNCTION MyEntity = %ENTITY_SET% to *FUNCTION MyEntity = BAS(%ENTITY_SET%)

This would fix the error however before you change it you might want to think through what the script is supposed to do or if the selection should be a base level member.

Akos

Former Member
0 Kudos

Akos,

The ENTITY selection is currently set to <all>.  I thought that would calculate on all base level members.  I am not sure why it would stop at this one point in the hierarchy and fail.

I made the change that your suggested and I am running it now.

Thanks,

Robert

former_member186338
Active Contributor
0 Kudos

Hi Robert,

Have you provided the full script - CALC_UA.LGF?

In general I prefer not to use functions and subs for the script like this - the readability is not actually improved.

Simplified script (faster!):

*XDIM_MEMBERSET AUDITTRAIL = SystemCalc

*XDIM_MEMBERSET ACCOUNT = BAS(CC_EXP)

*XDIM_MEMBERSET FLOW = E70

*XDIM_MEMBERSET FUNCT_AREA = FA_COGS,FA_ABS,FA_OTHCOGS,FA_RD,FA_GA,FA_SALES,NO_FA

*WHEN FUNCT_AREA

*FOR %FA%=FA_COGS,FA_ABS,FA_OTHCOGS,FA_RD,FA_GA,FA_SALES,NO_FA AND %ACC%=UA1740_INPUT,UA1780_INPUT,UA1890_INPUT,UA2760_INPUT,UA2780_INPUT,UA2770_INPUT,UA1740_NOFA_INPUT

*IS %FA%

*REC(FACTOR = 1, ACCOUNT = %ACC%)

*NEXT

*ENDWHEN

*XDIM_MEMBERSET ACCOUNT = UA1740_NOFA_INPUT,UA1780_INPUT,UA1740_INPUT,UA1890_INPUT

*WHEN ACCOUNT

*IS *

*REC(FACTOR = 1,FLOW = J70)

*ENDWHEN

You do not need to scope TIME, CATEGORY,... etc - will be already scoped.

And you will have only 2 WHEN/ENDWHEN loops

Vadim

P.S. Don't use useless COMMIT

Former Member
0 Kudos

Hello Vadim,

So you are saying that whole script can be simplified into the one you just provided?

Your script does not have a COMMIT, is that because it does not need one or just that this is a sample of how to simplify this script?

There is no need for any of the *FUNCTION or *SUB routines? How would prompts me selected from a data manager package without the FUNCTIONS %"TIME_SET"%?

Thanks,

Robert

akos_beres
Contributor
0 Kudos

Robert,

it is in his answer:

Q1


So you are saying that whole script can be simplified into the one you just provided?

Yes

Vadim:


And you will have only 2 WHEN/ENDWHEN loops

Q2

Your script does not have a COMMIT, is that because it does not need one or just that this is a sample of how to simplify this script?

Vadim


P.S. Don't use useless COMMIT

Q3


There is no need for any of the *FUNCTION or *SUB routines?

     

      Some developers like to "organize" the script but all it does it makes the script harder to follow and look like it's really complex - not needed

Q4


How would prompts me selected from a data manager package without the FUNCTIONS %"TIME_SET"%?

Your prompts will either passed through the advance script selection or used in when statements

Vadim:

You do not need to scope TIME, CATEGORY,... etc - will be already scoped.

Hope this helps

Akos

Former Member
0 Kudos

Hey Akos,

Yes that is very helpful.

I thought that meant we had too many COMMITs.  Does this mean that we do not need to use any commits in any logic script?

Thanks,

Robert

akos_beres
Contributor
0 Kudos

Robert,

the "commit" is a leftover from the MS version of the product. No need to use it with a When\Endwhen rec statement unless you want to reset the XDIM statements for another record statement. In your example, if you want to run a record statement for another flow other than E70 but you can just as easily do it with a when statement.

Akos

PS - using commit is Vadim's largest pet peeve

Former Member
0 Kudos

Hi Robert,

For performance purposes treatment of <all> has been changed. It's supposed to produce same results, but sometimes bugs are uncovered. Can you try running your script with some other Node and check if it gives same error?

Regards,

Gersh

former_member186338
Active Contributor
0 Kudos

Have you tested my proposed script in UJKT?