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

RUN_LOGIC:Unknown Dimension Name in Keyword:

Former Member
0 Likes
848

Good morning gurus

I'm having the following error when running my piece of code:

RUN_LOGIC:Unknown Dimension Name in Keyword: "[KIT].[NO_KITS]:

Of course this member exists in the dimension, I've been reading a lot of posts here and it looks like its related to the K2 ABAP engine and the impossibility to perform many RECs under WHEN/END. I don't think this is my case.

Script logic:

*SELECT(%YR%,YEAR,TIME,"[ID]=%TIME_SET%")

*SELECT(%PLT%,ID,LOCATION,"[COMPANY_CODE]<>''")

// YTD Volume aggregation

*XDIM_MEMBERSET TIME=BAS(%YR%.TOT),BAS(%YR%.PER)

*XDIM_MEMBERSET LOCATION=%PLT%

*XDIM_MEMBERSET KIT=BAS(ALL_KITS)

*XDIM_MEMBERSET COMPONENT=BAS(ALL_COMPONENT)

*XDIM_MEMBERSET KEYFIGURE=IVOL,CVOL

*XDIM_MEMBERSET VERSION=A100

*XDIM_MEMBERSET DATASRC=INPUT

*WHEN KEYFIGURE

*IS IVOL

*REC(EXPRESSION=%VALUE%, KEYFIGURE=YTD_IVOL, TIME=%TIME_SET%)

*IS CVOL

*REC(EXPRESSION=%VALUE%, KEYFIGURE=YTD_CVOL, TIME=%TIME_SET%)

*ENDWHEN

*COMMIT

// Variances Allocation based on Ingredient Volume

*XDIM_MEMBERSET TIME=%TIME_SET%

*XDIM_MEMBERSET LOCATION=%PLT%

*XDIM_MEMBERSET KIT=BAS(ALL_KITS)

*XDIM_MEMBERSET COMPONENT=BAS(ALL_COMPONENT)

*XDIM_MEMBERSET KEYFIGURE=YTD_IVOL,YTD_CVOL

*XDIM_MEMBERSET VERSION=A100

*XDIM_MEMBERSET MATG4=NO_MATG4

*XDIM_MEMBERSET CURRENCY=LC

*XDIM_MEMBERSET DATASRC=INPUT

*SELECT(%COMP%,COMPANY_CODE,LOCATION,"[ID]=%PLT%")

*FOR %KF%=REVAL_BS,REVAL_PL

*WHEN KEYFIGURE

*IS YTD_IVOL

*BEGIN

*REC(EXPRESSION=

//VARIANCES at YTD and COMPANY CODE LEVEL

([KEYFIGURE].[%KF%],

[KIT].[NO_KITS],

[COMPONENT].[NO_COMPONENT],

[BRAND].[NO_BRAND],

[COUNTRY].[NO_COUNTRY],

[DATASRC].[INPUT],

[LOCATION].[%COMP%]) *

//SPECIFIC VOLUME

%VALUE%/

//TOTAL VOLUME

([COMPONENT].[ALL_COMPONENT],

[KIT].[ALL_KITS],

[BRAND].[ALL_BRAND],

[COUNTRY].[ALL_COUNTRIES],

[DATASRC].[INPUT],

[LOCATION].[%PLT%])

// POST TO KEYFIGURE

,KEYFIGURE=%KF%,DATASRC=CALC)

*END

*ENDWHEN

*NEXT

IF %PLT% (Plants) is hardcoded to a single plant it works, takes a long time tho, but if the number of plants is dynamically recovered (15 in total) it fails.

I'm attaching UJKT execution too:

PARAMS : TIME=2015.MAR


LGX:

-------------------------------------------------------------------------------------------------------------------------------------

LOG:

FILE:\ROOT\WEBFOLDERS\PWFP \ADMINAPP\COGS\TEST.LGF

USER:09170143

APPSET:PWFP

APPLICATION:COGS

[INFO] GET_DIM_LIST(): I_APPL_ID="COGS", #dimensions=13

BRAND,COMPONENT,COUNTRY,CURRENCY,DATASRC,INGREDIENT,KEYFIGURE,KIT,LOCATION,MATG4,MEASURES,TIME,VERSION

#dim_memberset=7

TIME:2015.APR,2015.AUG,2015.DEC,2015.FEB,2015.JAN,...25 in total.

LOCATION:8900,8901,8902,8903,8904,...26 in total.

KIT:K2000000027,K2000000028,K2050000001,K2050000003,K2050000004,...50 in total.

COMPONENT:C2000000000,C2000000001,C2000000002,C2000000008,C200000001,...1234 in total.

KEYFIGURE:CVOL,IVOL,2 in total.

VERSION:A100,1 in total.

DATASRC:INPUT,1 in total.

REC :%VALUE%

CALCULATION BEGIN:

QUERY PROCESSING DATA

QUERY TIME : 1353.98 ms. 6  RECORDS QUERIED OUT.

QUERY REFERENCE DATA

CALCULATION TIME IN TOTAL :756.70 ms.

2  RECORDS ARE GENERATED.

CALCULATION END.

#dim_memberset=7

TIME:2015.APR,2015.AUG,2015.DEC,2015.FEB,2015.JAN,...25 in total.

LOCATION:8900,8901,8902,8903,8904,...26 in total.

KIT:K2000000027,K2000000028,K2050000001,K2050000003,K2050000004,...50 in total.

COMPONENT:C2000000000,C2000000001,C2000000002,C2000000008,C200000001,...1234 in total.

KEYFIGURE:CVOL,IVOL,2 in total.

VERSION:A100,1 in total.

DATASRC:INPUT,1 in total.

REC :%VALUE%

CALCULATION BEGIN:

QUERY PROCESSING DATA

QUERY TIME : 914.84 ms. 0  RECORDS QUERIED OUT.

QUERY REFERENCE DATA

CALCULATION TIME IN TOTAL :438.55 ms.

NO RECORDS GENERATED.

CALCULATION END.

ENDWHEN ACCUMULATION: 2  RECORDS ARE GENERATED.

DATA TO WRITE BACK:

BRAND COMPONENT COUNTRY CURRENCY DATASRC INGREDIENT KEYFIGURE KIT LOCATION MATG4 TIME VERSION SIGNEDDATA

B000 C2000000001 IEY001 LC INPUT I580000001 YTD_IVOL K291000001 8902 NO_MATG4 2015.MAR A100 900.00

B000 C2000000001 IEY001 LC INPUT I580000001 YTD_IVOL K291000001 8903 NO_MATG4 2015.MAR A100 600.00

2  RECORDS HAVE BEEN WRITTEN BACK.

WRITING TIME :246.07  ms.

[INFO] GET_DIM_LIST(): I_APPL_ID="COGS", #dimensions=13

BRAND,COMPONENT,COUNTRY,CURRENCY,DATASRC,INGREDIENT,KEYFIGURE,KIT,LOCATION,MATG4,MEASURES,TIME,VERSION

#dim_memberset=9

TIME:2015.MAR,1 in total.

LOCATION:8900,8901,8902,8903,8904,...26 in total.

KIT:K2000000027,K2000000028,K2050000001,K2050000003,K2050000004,...50 in total.

COMPONENT:C2000000000,C2000000001,C2000000002,C2000000008,C200000001,...1234 in total.

KEYFIGURE:YTD_CVOL,YTD_IVOL,2 in total.

VERSION:A100,1 in total.

MATG4:NO_MATG4,1 in total.

CURRENCY:LC,1 in total.

DATASRC:INPUT,1 in total.

UJK_VALIDATION_EXCEPTION:Unknown Dimension Name in Keyword: "[KIT].[NO_KITS]:

Thanks ahead for your help

Best regards

/Laura

Accepted Solutions (1)

Accepted Solutions (1)

former_member186338
Active Contributor
0 Likes

Hi Laura,

I see number of issues with this code!

First:

*SELECT(%PLT%,ID,LOCATION,"[COMPANY_CODE]<>''")

...

*XDIM_MEMBERSET LOCATION=%PLT%

will result in:

LOCATION:8900,8901,8902,8903,8904,...26 in total.

26 members in %PLT%

But later you use:

*SELECT(%COMP%,COMPANY_CODE,LOCATION,"[ID]=%PLT%")

Resulting in multiple members in %COMP%?

And you are trying to use multimember %COMP% in:

*REC(EXPRESSION=(...,[LOCATION].[%COMP%])...

Will not work!

Please explain the logic in line with

Vadim

P.S. Also use single line REC instead of BEGIN/END

Answers (0)