说明
本文主要列举常用的tm1进程函数,不定期更新。(基于 pa10.8 版本)
官网地址:
维度&元素&属性信息
维度
-
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('变量名');
-
使用此函数可定义数值型全局变量。
-