TM1进程常用函数列表

说明

本文主要列举常用的tm1进程函数,不定期更新。(基于 pa10.8 版本)

官网地址:

TurboIntegrator 函数 - IBM 文档

维度&元素&属性信息

维度

 

  • DimensionCreate(DimName);

  • 创建新维度

  •  

  • DimensionDestroy(DimName);

  • 删除维度

  •  

  • DimensionExists(DimName);

  • 判断维度是否存在。1/0

  •  

  • DimSiz(DimName);

  • 返回指定维度的元素数。

  •  

  • DnLev(DimName);

  • 返回指定维度一共有多少个级别。

  •  

  • TabDim(CubeName,3);

  • 返回此cube对应第index个维度的名称。

  •  

元素信息

 

  • DimensionElementExists(DimName, ElName);

  • 判断元素是否存在。1/0

  •  

  • DimensionElementInsertDirect(DimName, InsertionPoint, ElName,ElType);

  • 插入元素,插入到InsertionPoint元素的前边,InsertionPoint可为空。ElType=N,S,C

  •  

  • DimensionElementDeleteDirect(DimName, ElName);

  • 删除维度中某元素。

  •  

  • DimensionDeleteAllElements(DimName);

  • 删除维度所有元素。

  •  

  • DimensionDeleteElements(DimName, SubName );

  • 删除该维度下,子集中包含的所有元素。

  •  

  • DimensionElementComponentAddDirect(DimName, ConsolidatedElName,ElName, ElWeight);

  • 向某合并元素插入子项。

  •  

  • DimensionElementComponentDeleteDirect(DimName, ConsolidatedElName,ElName);

  • 从合并元素中删除某子项。

  •  

  • DimensionElementPrincipalName( DimName, ElName);

  • 返回元素名称。ElName可以是别名或名称,返回的都是名称。

  •  

  • DimNm(DimName, index);

  • 返回对应index参数的维度的元素。

  •  

  • DimIx(DimName,element);

  • 返回元素在维度中的索引号。

  •  

  • DType(DimName,element);

  • 返回元素的类型:N,S,C

  •  

  • ElComp(DimName,element,n);

  • 返回元素的第n个子项的名称。 不是合并元素返回0

  •  

  • ElCompn(DimName,element);

  • 返回元素的子项个数。不是合并元素返回0

  •  

  • ElPar(DimName,element,index);

  • 返回元素的第index个父项。

  •  

  • ElParn(DimName,element);

  • 返回元素的父项个数。

  •  

  • ElIsanc(DimName,element1,element2);

  • 返回e1是否是el2的祖代,是返回1,不是返回0.

  •  

  • ElIscomp(DimName,element1,element2);

  • 返回e1是否是el2的子项,是返回1,不是返回0.

  •  

  • ElIspar(DimName,element1,element2);

  • 返回e1是否是el2的父项,是返回1,不是返回0.

  •  

  • ElLev(DimName,element);

  • 返回元素在维度中的级别。

  •  

  • SwapAliasWithPrincipalName(DimName,AttrsName,0);

  • 将别名attrsName替换为元素名

  •  

元素属性

 

  • AttrN(DimName, element, attribute);

  • 返回某元素的数值属性。

  •  

  • AttrS(DimName, element, attribute);

  • 返回某元素的字符串属性

  •  

  • AttrDelete(DimName, AttrName);

  • 删除维度某一个属性。

  •  

  • AttrInsert(DimName, PrevAttr, AttrName, Type);

  • 创建一个属性。Type=N,S,A

  •  

  • AttrPutN(Value, DimName, ElName, AttrName, [LangLocaleCode] );

  • 给一个数值型属性赋值。

  •  

  • AttrPutS(Value, DimName, ElName, AttrName, [LangLocaleCode] );

  • 给一个字符串型属性赋值。

  •  

子集

 

  • SubsetAliasSet( DimName, SubName, AliasName );

  • 设置子集使用的别名。

  •  

  • SubsetCreate(DimName, SubName);

  • 创建子集。

  •  

  • SubsetCreatebyMDX(SubName, MDX_Expression);

  • 用MDX语句创建动态子集。

  •  

  • SubsetDestroy(DimName, SubName);

  • 删除子集

  •  

  • SubsetExists(DimName, SubName);

  • 判断子集是否存在。1/0

  •  

  • SubsetElementInsert(DimName, SubName, ElName, Index);

  • 向子集的第index位置插入一个元素。

  •  

  • SubsetElementDelete(DimName, SubName, Index);

  • 删除子集的第index个元素。

  •  

  • SubsetDeleteAllElements(DimName, SubName);

  • 删除子集的所有元素。

  •  

  • SubsetGetElementName(DimName, SubName, Index);

  • 获取子集的第Index个元素名。

  •  

  • SubsetGetSize(DimName, SubName);

  • 获取子集的元素个数。

  •  

  • SubsetIsAllSet( DimName, SubName, Flag );

  • 将一个子集设置为使用父维度的所有元素。

  •  

  • SubsetElementExists(DimName, SubName, ElName);

  • 判断子集中是否包含某元素。1/0

  •  

  • SubsetElementGetIndex(DimName, SubName, ElName, StartIndex);

  • 获取子集某元素的索引号。StartIndex是起始位置开始查

  •  

  • SubsetMDXGet(DimName, SubName);

  • 返回用来创建子集的 MDX 表达式。

  •  

  • SubsetMDXSet(DimName, SubName, MDX_expression);

  • 设置动态子集的MDX表达式。

  •  

cube相关

 

cube

 

  • CubeCreate(CubeName, d1, d2 [,...dn]);

  • 创建一个多维数据集

  •  

  • CubeExists(CubeName);

  • 判断cube是否存在。1/0

  • CellGetN(CubeName,el1,el2[,...eln]);

  • 获取某cube数值型单元格的值

  • CellGetS(CubeName,el1,el2[,...eln]);

  • 获取某cube字符串型单元格的值。

  • CellIsUpdateable(CubeName,el1,el2[,...eln]);

  • 判断某单元格是否可写。可写=1,不可写=0

  • CellPutN(value,CubeName,el1,el2[,...eln]);

  • 将某数值写入cube的数值型单元格。

  • CellPutS(value,CubeName,el1,el2[,...eln]);

  • 将某字符串写入cube的字符串型单元格。

  • CellIncrementN(x, Cube, e1, e2 [,...en]);

  • 按指定值对现有的数字单元格值进行递增。类似先a=cellgetn(cube...),然后x=x+a,最后cellputn(x,...)

  • CubeClearData(CubeName);

  • 清除cube所有数据

  • CubeGetLogChanges(CubeName);

  • 判断cube是否开启审计日志。1/0

  • CubeSetLogChanges(CubeName, LogChanges);

  • 开/关cube的审计日志。LogChanges=1/0 代表开/关

  • CubeSaveData(CubeName);

  • 将某cube的内容从内存写入磁盘。

  • CubeProcessFeeders(CubeName);

  • 重算feeders

  • CubeDimensionCountGet(CubeName);

  • 返回cube的维度个数。

  • CubeDestroy(Cube);

  • 删除指定的 TM1® 多维数据集

  • CubeRuleAppend(cubename,RuleText, IsCalculationRule);

  • 对cubename追加一行规则文本RuleText。RuleText必须是一句完整的规则且符合规则校验。IsCalculationRule=1追加到feeders上边,IsCalculationRule=0追加到feeders下边。

  •  

视图

 

  • ViewCreate(CubeName, ViewName);

  • 创建视图

  •  

  • ViewDestroy(CubeName, ViewName);

  • 删除视图

  •  

  • ViewSubsetAssign(CubeName, ViewName, DimName, SubName);

  • 分配一个子集给视图。

  •  

  • ViewExists(CubeName, ViewName);

  • 判断视图是否存在。 1/0

  •  

  • ViewColumnDimensionSet(CubeName, ViewName, DimName, StackPosition);

  • 为视图设置列维度

  •  

  • ViewColumnSuppressZeroesSet(CubeName, ViewName, Flag);

  • 设置视图是否列消零。Flag=1/0

  •  

  • ViewRowDimensionSet(CubeName, ViewName, DimName, StackPosition);

  • 为视图设置行维度。

  •  

  • ViewRowSuppressZeroesSet(CubeName, ViewName, Flag);

  • 设置视图是否行消零。Flag=1/0

  •  

  • ViewTitleDimensionSet(CubeName, ViewName, DimName);

  • 为视图设置标题维度

  •  

  • ViewTitleElementSet(CubeName, ViewName, DimName, Index);

  • 为视图设置标题维度的元素

  •  

  • ViewExtractSkipCalcsSet(CubeName, ViewName, Flag);

  • 设置视图是否包含父项。Flag=1/0

  •  

  • ViewExtractSkipRuleValuesSet(CubeName, ViewName, Flag);

  • 设置视图是否包含规则计算项。Flag=1/0

  •  

  • ViewExtractSkipZeroesSet(CubeName, ViewName, Flag);

  • 设置视图是否消零。Flag=1/0

  •  

  • ViewExtractSkipConsolidatedStringSet(CubeName, ViewName, Flag);

  • 设置视图是否包含合并值中的字符串。Flag=1/0

  •  

  • ViewZeroOut(CubeName, ViewName);

  • 将视图中的数据全部清0

  •  

数值运算&字符串

 

数值

 

  • Abs(num);

  • 返回绝对值

  •  

  • Max(num1,num2);

  • 返回较大

  •  

  • Min(num1,num2);

  • 较小值

  •  

  • Mod(num1,num2);

  • num1除以num2之后的余数

  •  

  • Rand;

  • 返回0~1的一个随机数

  •  

  • Roundp(number,decimal);

  • 按指定的精度四舍五入

  •  

字符串

 

  • Delet(string, start, del_length);

  • 从start位置开始删除string,删除del_length个字符之后的字符串

  •  

  • Insrt('abc','def',2);

  • 将abc插入到def中,从第2个位置开始插 返回dabcef

  •  

  • Long('abc');

  • 返回长度 返回3

  •  

  • Scan('abc','uabcd');

  • 返回'abc'在'uabcd'的位置,返回2 如果没有子字符串,返回0

  •  

  • Subst('abdce',2,3);

  • 截取 返回'abdce'从第二个开始,长度为3的子字符串 返回bdc

  •  

  • Trim(' da d dsd ');

  • 去掉首尾的空格返回 返回'da d dsd'

  •  

  • NumberToString(number);

  • 将数值转换为字符串 -- 发现只支持9位小数,9位小数之后的无法识别。

  • 针对此情况,如果精度要求较高,可以用str函数

  •  

  • str(number,len,decimal);

  • 将数值转换为字符串,指定长度和精度。

  •  

  • StringToNumber(String);

  • 将字符串转为数值

  •  

  • UPPER(String);

  • 将字符串转换为大写

  •  

  • Expand(String);

  • Expand 用于将括在 % 符号中的 TurboIntegrator 变量名扩展为它们在运行时的值。

  • 示例: Expand('a=%a%') ;如果之前定义了a=test。那么此函数返回的结果是'a=test'.(常用于odbcoutput执行sql时拼接字符串使用)

  •  

日期时间

 

日期时间

 

  • Now

  • 以序号格式返回当前时间

  •  

  • Timst(now,'\Y-\m-\d \h:\i:\s');

  • 将序号格式的日期格式化为字符串

  •  

  • Today(1);

  • 按YYYY-MM-DD返回当天日期;

  •  

  • DAYNO('DateString');

  • 返回日期字符串的序列日期; 比如:dayno('2021-01-01')=22281,一般需要加21916,加了之后就和excel的展示一样。

  •  

  • date(数字,1);

  • 将以 yy-mm-dd 或 yyyy-mm-dd 格式返回某一给定序列号的日期字符串; 比如 date(22281,1)=2021-01-01,一般用户在excel做的web页面选择之后,需要-21916然后再用date转化。

  •  

odbc函数

 

odbc函数

 

  • ODBCOpenEx(OdbcSource, UserName, Password, UseUnicodeODBC);

  • 打开odbc数据源。UseUnicodeODBC=1

  •  

  • ODBCClose(OdbcSource);

  • 关闭odbc数据源

  •  

  • ODBCOutput(OdbcSource, SQLQuery, [SQLQuery2, SQLQuery3, ...]);

  • 执行sql

  •  

  • DataSourceType='Type';

  • 设置数据源类型。VIEW/SUBSET/ODBC/等。

  •  

  • DatasourceNameForServer='DataSourceName';

  • 设置数据源名称

  •  

  • DatasourceUserName='UserName';

  • 设置数据源的用户名

  •  

  • DatasourcePassword='Password';

  • 设置数据源的密码

  •  

  • DatasourceQuery='Query';

  • 设置数据源的查询语句。ODBC可用

  •  

进程&操作系统等函数

 

进程&操作系统等函数

 

  • SaveDataAll;

  • 保存数据

  •  

  • GetProcessName();

  • 获取TI名称

  •  

  • ProcessError;

  • 终止TI

  •  

  • ExecuteCommand(OSCommandLine, Wait);

  • 执行操作系统命令。wait=1/0 1表示同步,执行完OS命令之后执行下一步动作/0异步,会马上执行下一步动作而不用等到OS命令执行完。

  •  

  • ExecuteProcess(ProcessName[,ParamName1,ParamValue1,...]);

  • 运行TI

  •  

  • RunProcess(ProcessName[,ParamName1, ParamValue1,ParamName2, ParamValue2]);

  • 支持并行运行 TI

  •  

  • if... elseif... else... endif;

  • if判断

  •  

  • while()... end;

  • while循环

  •  

  • TextOutput(FileName, String1, String2, ...Stringn);

  • 打印信息到文本中

  •  

  • SetOutputCharacterSet( FileName, CharacterSet );

  • 与TextOutput结合使用,指定导出文件的字符集(比如 CharacterSet设置为'TM1CS_UTF8'表示utf8.)

  •  

  • SetInputCharacterSet(CharacterSet );

  • 当数据源是文件时,指定进程要用的字符集(比如 CharacterSet设置为'TM1CS_UTF8'表示utf8.)

  •  

  • LogOutput(SeverityLevel, MessageString);

  • 打印信息到tm1server.log中。SeverityLevel='DEBUG' 'INFO' 'WARN' 'ERROR' 'FATAL'

  •  

  • ItemReject(ErrorInfo);

  • 自定义错误信息打印到日志中

  •  

  • ItemSkip;

  • 强制跳过数据源

  •  

  • ProcessBreak;

  • 停止处理数据源并跳到结语继续执行

  •  

  • Synchronized('并发名');

  • 并发TI

  •  

  • ExecuteJavaN('JavaTIClass', ['OptionalParameter1','OptionalParameter2',...] );

  • 执行返回值为数值型的java函数

  •  

  • ExecuteJavaS('JavaTIClass', ['OptionalParameter1','OptionalParameter2',...] );

  • 执行返回值为字符串型的java函数

  •  

  • FileExists(File);

  • 判断文件是否存在。1/0

  •  
  • ASCIIDelete(File);

  • 用于删除 ASCII 文件(.cma,txt,xlsx等都行)。

  •  

  • sleep(n);

  • ti休眠,单位是毫秒。

  •  

用户权限相关

 

用户组

 

  • TM1User();

  • 返回执行当前TI的用户名

  •  

  • AddClient(UserName);

  • 创建用户

  •  

  • DeleteClient(UserName);

  • 删除用户。

  •  

  • AddGroup(GroupName);

  • 创建组

  •  

  • DeleteGroup(GroupName);

  • 删除组

  •  

  • AssignClientToGroup(UserName, GroupName);

  • 分配用户到组

  •  

  • RemoveClientFromGroup(UserName, GroupName);

  • 将用户从某组移除

  •  

  • AssignClientPassword(UserName, Password);

  • 设置用户的密码

  •  

权限

 

  • CellSecurityCubeCreate (‘DataCube’, ‘0:0:1:0’);

  • 通过减少的维度集合从现有多维数据集创建安全多维数据集

  •  

  • SetDimensionGroupsSecurity(securityLevel, DimName);

  • 设置维度权限级别

  •  

  • SetElementGroupsSecurity(securityLevel, dimension, element);

  • 设置元素的权限级别

  •  

  • ElementSecurityGet(DimName, ElName, GroupName);

  • 获取某组对某元素的权限级别

  •  

  • ElementSecurityPut(Level, DimName, ElName, GroupName);

  • 对某元素设置某组的权限。Level=None,Read,Write,Reserver,Lock,Admin

  •  

安全覆盖

 

  • SecurityOverlayCreateGlobalDefault(CubeName, '0:0:1:0');

  • 创建安全覆盖

  •  

  • SecurityOverlayDestroyGlobalDefault(CubeName);

  • 损坏安全覆盖

  •  

  • SecurityOverlayGlobalLockNode(bLock, CubeName, '维度1元素1|维度2元素2'));

  • 安全覆盖-锁/解锁。bLock=1/0 锁定/解锁

  •  

  • SecurityOverlayGlobalLockCell(bLock, Cube, element1,..., elementN);

  • 安全覆盖-锁/解锁。bLock=1/0 锁定/解锁

  •  

变量

 

变量

 

  • DataSourceType='Type';

  • 设置数据源类型。VIEW/SUBSET/ODBC/等。

  •  

  • DatasourceNameForServer='DataSourceName';

  • 设置数据源名称。

  •  

  • DatasourceASCIIHeaderRecords=N;

  • 如果数据源是文件,设置跳过的记录数,数字N>=0.

  •  

  • DatasourceNameForClient='DataSourceName';

  • 设置客户机的数据源名

  •  

  • DatasourceCubeview='ViewName';

  • 设置数据源的视图名。VIEW可用

  •  

  • DatasourceDimensionSubset='SubName';

  • 设置数据源的子集名。SUBSET可用

  •  

  • DatasourceUserName='UserName';

  • 设置数据源的用户名

  •  

  • DatasourcePassword='Password';

  • 设置数据源的密码

  •  

  • DatasourceQuery='Query';

  • 设置数据源的查询语句。ODBC可用

  •  

  • ValueIsString=Value;

  • ValueIsString=1时可用。

  • ValueIsString=0时可用。

  • Nvalue=Value;

  • Svalue=Value;

  •  

  • StringGlobalVariable('变量名');

  • 使用此函数可定义字符串型全局变量。

  •  

  • NumericGlobalVariable('变量名');

  • 使用此函数可定义数值型全局变量。

  •  

 

下一篇: