Page 1 of 1

Error: Prolog procedure line (): Cell is not writeable

Posted: Fri Feb 15, 2013 8:59 am
by devathadeepak
Hi Team,

i have the error(Error: Prolog procedure line (377): Cell is not writeable) when i run the TI process using the data adim id, however the process is successfull if i use adnin id.

Not sure what exactly is causing the problem. Please help me ..

Thanks & regards,
Deepak

Re: Error: Prolog procedure line (): Cell is not writeable

Posted: Fri Feb 15, 2013 9:06 am
by Alan Kirk
devathadeepak wrote: i have the error(Error: Prolog procedure line (377): Cell is not writeable) when i run the TI process using the data adim id, however the process is successfull if i use adnin id.

Not sure what exactly is causing the problem. Please help me ..
Happy to.

It would appear that the problem is that the relevant text in the Request for assistance guidelines (PLEASE READ) isn't obvious enough.

Allow me to address the problem.
4) Similarly if you're getting unexpected results, specifics of what you're running, how, and what results you're getting will yield a more valuable response than "I'm running a T.I. but my code doesn't work properly". If you're getting an error, please be specific about what the error is (full details, not just "a runtime error" or "process terminated with errors"), and the circumstances under which it's occurring. But remember that even if you do specify the exact error message, it's not likely to be helpful unless you provide the context for it; which part of the software the error is occurring in (point 2 above), and what, specifically, you were doing at the time. For Rules and TurboIntegrator processes, remember that including the actual code in your post will be a thousand times more useful than an attempted description of it. You can upload entire .pro and .cho files as attachments if necessary, or just copy and paste the relevant part into your post using the Code tag at the top of the post editing window.

Re: Error: Prolog procedure line (): Cell is not writeable

Posted: Fri Feb 15, 2013 9:13 am
by devathadeepak
Below Prolog code for your reference.


#Source and Target cubes and views
sFromCube='st_XXX';
sFromView = 'sys.FSDM.' | sFromCube | '.INVPUBACTUALS';

sToCube='in_YY;
sToView = 'sys.PUBSTG.' | sToCube | '.INVPUBPLG_ACT';

##############################################################################

#Disable cube logging in target cubes
CubeSetLogChanges(sToCube,0);

##############################################################################

#Get years from Global Parameters cube
vCurrent_Year=CELLGETS('cn_Global_Parameters', 'Current Year Actuals', 'Curr Fiscal Year');
vPrior_Year=CELLGETS('cn_Global_Parameters', 'Prior year Actuals', 'Curr Fiscal Year');
vFuture_Year=CELLGETS('cn_Global_Parameters', 'Future Budget', 'Curr Fiscal Year');


#Set source version
vActuals='001';

##############################################################################

#Destroy and create cube views

IF ( VIEWEXISTS ( sFromCube, sFromView ) = 1) ;
VIEWDESTROY ( sFromCube, sFromView ) ;
ENDIF;


IF ( VIEWEXISTS ( sToCube, sToView ) = 1) ;
VIEWDESTROY ( sToCube, sToView ) ;
ENDIF;


VIEWCREATE ( sFromCube, sFromView ) ;
VIEWEXTRACTSKIPCALCSSET ( sFromCube, sFromView, 0 ) ;
VIEWEXTRACTSKIPRULEVALUESSET ( sFromCube, sFromView, 0 ) ;
VIEWEXTRACTSKIPZEROESSET ( sFromCube, sFromView, 1 ) ;

VIEWCREATE ( sToCube, sToView ) ;

##############################################################################

#Create source view subsets

vDimCnt = 1;

WHILE (TABDIM(sFromCube,vDimCnt)@<>'');

sDim = TABDIM(sFromCube, vDimCnt);

sSubset = 'sys.FSDM.' | sDim | '.PUBSTG_INVISION_ACTUALS'|sFromCube;

IF(sDim @='st_Version');
IF (SUBSETEXISTS(sDim, sSubset)=0);
SUBSETCREATE ( sDim, sSubSet);
ELSE;
SUBSETDELETEALLELEMENTS ( sDim, sSubset ) ;
ENDIF;

SUBSETELEMENTINSERT ( sDim, sSubSet, vActuals, 1);





ELSEIF ( sDim @= 'Plan Year' );
IF (SUBSETEXISTS(sDim, sSubset)=0);
SUBSETCREATE ( sDim, sSubSet);
ELSE;
SUBSETDELETEALLELEMENTS ( sDim, sSubset ) ;
ENDIF;
SUBSETELEMENTINSERT ( sDim, sSubSet,vCurrent_Year, 1);
SUBSETELEMENTINSERT ( sDim, sSubSet,vPrior_Year, 1);




ELSEIF ( sDim @= 'Fiscal Year' );
IF (SUBSETEXISTS(sDim, sSubset)=0);
SUBSETCREATE ( sDim, sSubSet);
ELSE;
SUBSETDELETEALLELEMENTS ( sDim, sSubset ) ;
ENDIF;
SUBSETELEMENTINSERT ( sDim, sSubSet,vCurrent_Year, 1);
SUBSETELEMENTINSERT ( sDim, sSubSet,vPrior_Year, 1);


ELSEIF ( sDim @= 'Business Area' );
IF (SUBSETEXISTS(sDim, sSubset)=0);
SUBSETCREATE ( sDim, sSubSet);
ELSE;
SUBSETDELETEALLELEMENTS ( sDim, sSubset ) ;
ENDIF;
SUBSETELEMENTINSERT ( sDim, sSubSet,'All Business Area Codes', 1);


ELSEIF ( sDim @= 'Business Type' );
IF (SUBSETEXISTS(sDim, sSubset)=0);
SUBSETCREATE ( sDim, sSubSet);
ELSE;
SUBSETDELETEALLELEMENTS ( sDim, sSubset ) ;
ENDIF;
SUBSETELEMENTINSERT ( sDim, sSubSet,'Total Business Type', 1);

ELSEIF ( sDim @= 'Company Code' );
IF (SUBSETEXISTS(sDim, sSubset)=0);
SUBSETCREATE ( sDim, sSubSet);
ELSE;
SUBSETDELETEALLELEMENTS ( sDim, sSubset ) ;
ENDIF;
SUBSETELEMENTINSERT ( sDim, sSubSet,'All Company Codes', 1);






ELSEIF ( sDim @= 'Distribution Channel' );
IF (SUBSETEXISTS(sDim, sSubset)=0);
SUBSETCREATE ( sDim, sSubSet);
ELSE;
SUBSETDELETEALLELEMENTS ( sDim, sSubset ) ;
ENDIF;
SUBSETELEMENTINSERT ( sDim, sSubSet,'Total Distribution Channel', 1);

ELSEIF ( sDim @= 'Product Type' );
IF (SUBSETEXISTS(sDim, sSubset)=0);
SUBSETCREATE ( sDim, sSubSet);
ELSE;
SUBSETDELETEALLELEMENTS ( sDim, sSubset ) ;
ENDIF;
SUBSETELEMENTINSERT ( sDim, sSubSet,'All Product Types', 1);

ELSEIF ( sDim @= 'Transaction Currency Code' );
IF (SubsetExists(sDim, sSubset)=0);
SubSetCreate ( sDim, sSubSet);
ELSE;
SubsetDeleteAllElements ( sDim, sSubset ) ;
ENDIF;
SubsetElementInsert ( sDim, sSubSet,'Transaction Currency Code', 1);


ELSEIF ( sDim @= 'Local Currency Code' );
IF (SubsetExists(sDim, sSubset)=0);
SubSetCreate ( sDim, sSubSet);
ELSE;
SubsetDeleteAllElements ( sDim, sSubset ) ;
ENDIF;
SubsetElementInsert ( sDim, sSubSet,'Local Currency Code', 1);

ELSEIF ( sDim @= 'Measures' );
IF (SubsetExists(sDim, sSubset)=0);
SubSetCreate ( sDim, sSubSet);
ELSE;
SubsetDeleteAllElements ( sDim, sSubset ) ;
ENDIF;
SubsetElementInsert ( sDim, sSubSet,'Amount USD (Current Year Budget Rate)', 1);

ELSEIF ( sDim @= 'Sub Category' );
IF (SubsetExists(sDim, sSubset)=0);
SubSetCreate ( sDim, sSubSet);
ELSE;
SubsetDeleteAllElements ( sDim, sSubset ) ;
ENDIF;
SubsetElementInsert ( sDim, sSubSet,'LIC_PROD', 1);


ELSEIF ( sDim @= 'Cost Center' );
IF (SubsetExists(sDim, sSubset)=0);
SubSetCreate ( sDim, sSubSet);
ELSE;
SubsetDeleteAllElements ( sDim, sSubset ) ;
ENDIF;
#SubsetElementInsert ( sDim, sSubSet,'TWDCSCPMGTCCG', 1);
SubsetElementInsert ( sDim, sSubSet,'-1', 1);


ELSEIF ( sDim @= 'Account' );
IF (SubsetExists(sDim, sSubset)=0);
SubSetCreate ( sDim, sSubSet);
ELSE;
SubsetDeleteAllElements ( sDim, sSubset ) ;
ENDIF;
SubsetElementInsert ( sDim, sSubSet,'-1', 1);


ELSEIF ( sDim @= 'Invision Measure Names' );
IF (SubsetExists(sDim, sSubset)=0);
SubSetCreate ( sDim, sSubSet);
ELSE;
SubsetDeleteAllElements ( sDim, sSubset ) ;
ENDIF;
SubsetElementInsert ( sDim, sSubSet,'1', 1);
#SubsetElementInsert ( sDim, sSubSet,'2', 1);

ELSEIF ( sDim @= 'MPM Product' );

IF (SubsetExists(sDim, sSubset)=0);
SubSetCreate ( sDim, sSubSet);
ELSE;
SubsetDeleteAllElements ( sDim, sSubset ) ;
ENDIF;

vDim_Size = DIMSIZ (sDim);
vIndex = 1;
While ( vIndex < vDim_Size);
MPM_Element = DIMNM ( sDim, vIndex );

IF ( ELLEV(sDim, MPM_Element )=1 );
IF ( ELISANC(sDim, 'SCPCGMPMPR', MPM_Element ) =1 );




SUBSETELEMENTINSERT ( sDim, sSubSet,MPM_Element , 1);
vIndex = vIndex +1;
ELSE;
vIndex = vIndex +1;
ENDIF;

ELSE;
vIndex = vIndex +1;
ENDIF;



END;


ELSE;

IF (SUBSETEXISTS(sDim, sSubset)=1);
SUBSETDESTROY ( sDim, sSubset ) ;
ENDIF;
SUBSETCREATEByMDX(sSubset, '{TM1FILTERBYLEVEL( {TM1SUBSETALL( ['| sDim |'] )}, 0)}');

ENDIF;

VIEWSUBSETASSIGN(sFromCube, sFromView, sDim, sSubset);

vDimCnt = vDimCnt + 1;

END;

##############################################################################
#Create view for Target cube to zeroout

vDimCnt = 1;

WHILE (TABDIM(sToCube,vDimCnt)@<>'');

TargetDim = TABDIM(sToCube, vDimCnt);

TargetSubset = 'sys.PUBSTG.' | sDim | '.PUBPLGINV_ACTUALS'|sToCube;

IF(TargetDim @='Versions_Current_AOP_FCST');
#vVersion_Forecast = pVersion|' - PY'|vPlan_Year|' - FY'|vFiscal_Year;
IF (SUBSETEXISTS(TargetDim, TargetSubset)=0);
SUBSETCREATE ( TargetDim, TargetSubSet);
ELSE;
SUBSETDELETEALLELEMENTS ( TargetDim, TargetSubset ) ;
ENDIF;
SUBSETELEMENTINSERT ( TargetDim, TargetSubSet,'Prior Year', 1);
SUBSETELEMENTINSERT ( TargetDim, TargetSubSet,'Current FCST Input', 1);



ELSEIF(TargetDim @='Accounts_Pub_Rev');

IF (SUBSETEXISTS(TargetDim, TargetSubset)=0);
SUBSETCREATE ( TargetDim, TargetSubSet);
ELSE;
SUBSETDELETEALLELEMENTS ( TargetDim, TargetSubset ) ;
ENDIF;
SUBSETELEMENTINSERT ( TargetDim, TargetSubSet,'1', 1);




ELSE;


IF (SUBSETEXISTS(TargetDim, TargetSubset)=1);
SUBSETDESTROY ( TargetDim, TargetSubset ) ;
ENDIF;
SUBSETCREATEByMDX(TargetSubset, '{TM1FILTERBYLEVEL( {TM1SUBSETALL( ['| TargetDim |'] )}, 0)}');

ENDIF;

VIEWSUBSETASSIGN(sToCube, sToView, TargetDim, TargetSubset);

vDimCnt = vDimCnt + 1;

END;

##############################################################################

#Zeroout target cube view
VIEWZEROOUT(sToCube,sToView);


##############################################################################

#Set source view
DATASOURCENAMEFORSERVER = sFromCube;
DATASOURCECUBEVIEW = sFromView;

Re: Error: Prolog procedure line (): Cell is not writeable

Posted: Fri Feb 15, 2013 9:32 am
by Alan Kirk
devathadeepak wrote:Below Prolog code for your reference.
And that would be the full, unadulterated code, it's safe to assume.

Hmm, that is quite a puzzler given that your original post reports the error on line 377 while there are only 314 lines of code in your example. And that the code won't actually compile since there is (at least) a missing closing quote in:

Code: Select all

sToCube='in_YY;
I think I may have to leave this to someone with prognostication talents beyond my own.

Re: Error: Prolog procedure line (): Cell is not writeable

Posted: Fri Feb 15, 2013 9:59 am
by devathadeepak
I have added only the relevant code for the issue. Please find the attached complete code for your reference.

Sorry for the confussions.

Re: Error: Prolog procedure line (): Cell is not writeable

Posted: Fri Feb 15, 2013 10:38 am
by qml
This is line 377 in the code you provided:

Code: Select all

##############################################################################
Are you absolutely positive you're providing accurate, unabridged information now?

Re: Error: Prolog procedure line (): Cell is not writeable

Posted: Fri Feb 15, 2013 10:54 am
by declanr
devathadeepak wrote:Hi Team,

i have the error(Error: Prolog procedure line (377): Cell is not writeable) when i run the TI process using the data adim id, however the process is successfull if i use adnin id.

Not sure what exactly is causing the problem. Please help me ..

Thanks & regards,
Deepak


Ok, ignoring the code you are providing for the reasons stated above.
With that error message and your statement that it works when run as "Admin" but not "DataAdmin"... is it possible that at some point (perhaps line 377) you are trying to enter data into a Security Cube?... one that a "DataAdmin" would not have access to...

Re: Error: Prolog procedure line (): Cell is not writeable

Posted: Tue Feb 19, 2013 12:35 pm
by devathadeepak
No i am just trying to VIEWZEROOUT(sToCube,sToView).

Re: Error: Prolog procedure line (): Cell is not writeable

Posted: Tue Mar 29, 2016 4:55 pm
by tiagoblauth
For versions or greater 10.1.0, 10.1.1
http://www-01.ibm.com/support/docview.w ... wg21649612

You can try also the antivirus.

Re: Error: Prolog procedure line (): Cell is not writeable

Posted: Tue Mar 29, 2016 5:48 pm
by gtonkin
At a quick glance, it may be that you are setting options for a view yet to be created somewhere around line 117:

Code: Select all

	VIEWEXTRACTSKIPCALCSSET ( sToCube,sToView, 0 ) ;
    VIEWEXTRACTSKIPRULEVALUESSET ( sToCube,sToView, 0 ) ;
    VIEWEXTRACTSKIPZEROESSET ( sToCube,sToView, 1 ) ;
    
	
	VIEWCREATE ( sToCube, sToView ) ;
Move the VIEWCREATE before the options like you have for the previous view.