Thank you lotsaram, Wim, and gtonkin. After piecing it all together, I think I get it. And... the problem has been fixed!
The problem and associated fix was staring in my face (as lotsaram mentioned and Alan tried to explain) which was to change the "Element Type" to "Numeric" instead of "String". After that, the "Cell type is string error" went away.
BUT... to be fair to myself
... how to fix that problem was not so obvious. Here's what I mean.
If you look at my previous post, I did mention that changing the Element Type to "Numeric" did not fix the problem:
Even when I change the "Element Type" to "Numeric", I still get the error! So, I don't see why/how the emphasis of that relates to this error.
So, hopefully my continued confusion in previous posts can be forgiven.
My problem was that I was changing the Element Type in the wrong place -
during the cube creation process!
If you recall from my OP, this error was occurring during my TI cube creation process. Within that process, I had originally set the Element Type to "String" to match what I had done when I originally created the Dimensions (and because I misunderstood at the time what Element Type was - more on that later). Then, to fix that problem based on everyone's input, I tried to change the Element Type from "String" to "Numeric" during my cube creation process, but it seems that doing that during the cube creation process doesn't do anything (now I understand why Alan was saying the wizard was unreliable to put it kindly).
This became evident after I rebuilt everything from scratch, set the Element Type to "Numeric" (or simple)
during the creation of the Dimension instead of during the creation of the Cube. When doing so, I looked at the Advanced Metadata tab and viewed the following code which creates the elements with the appropriate Element Type of 'n':
Code: Select all
#****Begin: Generated Statements***
DIMENSIONELEMENTINSERT('Simple Columns','',vColumn,'n');
DIMENSIONELEMENTINSERT('Simple Rows','',vRow,'n');
#****End: Generated Statements****
However, during the creation of the Cube, I noticed when I changed the Element Type "String" to "Numeric" (and back and forth) the Advanced Metadata tab had the following code:
Code: Select all
#****Begin: Generated Statements***
#****End: Generated Statements****
So, in sum, I was trying to fix the problem in the wrong place.
Anyway, my problem is now solved and thanks everyone for your help!
For those interested and to hopefully help other beginners... keep reading below for more notes:
------------------------------------------------------------------------------------------------------------------------
I must say that none of this seems very intuitive to me, especially if you have experience in other database or cube development applications.
What I've learned through this is, first the concept "Measures" in TM1 is fairly loose. You can optionally create a "Measure" by creating a Dimension as a (theoretical) "Measure" Dimension (see
https://youtu.be/lihralyjyRw video as simple example of this method). Or, if you do not specifically create a "Measure" Dimension, TM1 will informally treat your last Dimension in the Cube as the "Measure" Dimension. Last, though you can set a Dimension as a "Measure" Dimension in the Cube properties, TM1 doesn't use that information other than to communicate what a Measure is to other applications.
As for Element Types, I was thinking of them as being similar in concept to "Data Types" in the world of relational databases as well as SSAS. In those contexts, Data Types define what type the record or element value is (string, numeric, etc.). I thought the same would be true here, where "Element Type" would define what type the "Element" value is (string, numeric, etc.). As I'm now understanding, and as strange as it sounds to me, Element Type does not define the type for the Element value, but instead defines the type for the cube "Cell" value that the Element is associated with.
Not too intuitive in my opinion, but once you get it, and hopefully I do, it makes sense.
Another thing I think I now understand are what "Variables" and "Variable Types" really are and how they are used.
For those familiar with script programming (VB, C#, VBA, etc...), the Variables are really variables, as aptly named, that are being passed to arguments of a Sub or Function procedure created by the TI wizard. Call me slow... but this wasn't so obvious to me at first.
For example in the following procedures, you can see that my Variables ("vRow", "vColumn", and "vCellType") were passed to the arguments of the procedures being created/used in the TI wizard Advanced tabs:
DIMENSIONELEMENTINSERT('Simple Columns','',vColumn,'n');
CellPutN(vCellValue,'Simple Cube',vRow,vColumn);
And, you set the "Variable Type" (string, numeric, etc.) to pass the data type of the value the variable is holding to the procedure.
Hope I got all that right and it was helpful to anyone else that follows.
Thanks again to Alan, lotsaram, Wim, and gtonkin