AOTTableFieldList       AOTTableFieldList ,TableFieldNode;
TableName tableName = "SML_InventTableExt";
FieldName newFieldName = "SML_StorageLifeType";
Types newFieldType = Types::Integer;
int newFieldLength = 30;
str labelId = literalstr("@SML7726"); str ExtendedDataType ="";
ExtendedTypeId ExtendedTypeId = ExtendedTypeName2Id(ExtendedDataType); str EnumType = "SML_DaysUnitType"; TreeNode tableNode ,fieldNode ;
DictType DictType; #AOT
#Properties
#ACT_DynamicReport
;
tableNode = TreeNode::findNode(#TablesPath+'\\'+tableName) ;
AOTTableFieldList = TreeNode::findNode(#TablesPath+'\\'+tableName+'\\'+#ACT_AOTFieldsNode); fieldNode = AOTTableFieldList.AOTfindChild( newFieldname); if( fieldNode != null)
throw error(newFieldName + " allready exists in table " + tableName); if( ExtendedDataType )
{
if( ! ExtendedTypeId)
throw error( "ExtendedType type num error"); DictType = new DictType(ExtendedTypeId);
newFieldType = dictType.baseType();
}
else if (EnumType)
{
newFieldType = types::Enum;
} switch( newFieldType)
{
case Types::Date: AOTTableFieldList.addDate( newFieldName); break; case Types::Enum:
AOTTableFieldList.addEnum(newFieldName); break; case Types::Guid:
AOTTableFieldList.addGuid(newFieldName);
break; case Types::Int64:
AOTTableFieldList.addInt64(newFieldName);
break; case Types::Integer:
AOTTableFieldList.addInteger(newFieldName);
break; case Types::Real:
AOTTableFieldList.addReal(newFieldName);
break; case Types::String:
case Types::RString:
case Types::VarString:
AOTTableFieldList.addString(newFieldName);
break; case Types::DateTime:
AOTTableFieldList.addTime(newFieldName); break;
case Types::Container: // can add
continue; } TableFieldNode = AOTTableFieldList.AOTfindChild( newFieldName); if( newFieldType == types::String || newFieldType == Types::RString || newFieldType == Types::VarString )
TableFieldNode.AOTsetProperty("StringSize", newFieldLength); if( labelId)
TableFieldNode.AOTsetProperty("Label", labelId);
if( ExtendedDataType)
TableFieldNode.AOTsetProperty("ExtendedDataType", ExtendedDataType);
if( EnumType)
TableFieldNode.AOTsetProperty("EnumType", EnumType); tableNode.AOTcompile(1);
tableNode.AOTsave(); info("successed add field " + newfieldname);

  在AX4.0中用JOB测试通过。

在AX部署代码时,若是涉及比较大的表的字段的新增,在表上用按钮直接操作,往往耗费很多的时间在等待AOT的编译上面,若是同一表要加多个字段的时候,等的简直让人抓狂,用这个job, 一次加一个字段,速度相当快。

原因在于在表上面用按钮直接加字段,系统会编译所有用到此TABLE的所有的相关VIEW和QUERY。
而用代码加字段,我们只编译了该TABLE所在的节点,所以比较快。

用代码给TABLE 添加字段,设置属性并编译的更多相关文章

  1. shapefile添加字段 设置文件名为字段内容

    转眼间,这一年又结束了,再记录一点知识吧 同事说他有好多shapefile,想给每个shapefile添加一字段,并设置该字段的内容为shapefile文件名,想着用arcpy实现,于是有了下面的代码 ...

  2. JS添加、设置属性以及鼠标移入移出事件

    源代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  3. asp.net 后台给前台控件添加及设置属性

    txtTopImgBox.Attributes.Add("title", "12312121"); Text1.Style["background-c ...

  4. 解决由于服务器调用删除或添加字段后CXF客户端未更新导致异常问题org.apache.cxf.interceptor.Fault: Unmarshalling Error: Unexpected element

    采用CXF客户端调用Webservice服务,由于服务端时不时会对Webservice服务删除或添加一些字段,而CXF未及时更新客户端代码导致再次调用服务时报异常错误: Interceptor for ...

  5. 在高并发、高负载的情况下,如何给表添加字段并设置DEFAULT值?

    在高并发.高负载的情况下,如何给表添加字段并设置DEFAULT值? 在Oracle 12c之前,当Oracle表数据量上亿时,对表执行“ALTER TABLE XXX ADD COLUMN_XX VA ...

  6. MySQL的常用命令:添加外键,修改字段名称,增加字段 设置主键自增长等

    Mysql命令添加外键 前提是有这么几个表  以mall_product 和 mall_category为例 ALTER TABLE mall_product ADD CONSTRAINT fore_ ...

  7. Yii2给数据库表添加字段后对应模型无法识别到该属性的原因和解决办法

    Yii2给数据库表添加字段后对应模型无法识别到该属性的原因和解决办法 应为数据库表的结构被缓存了.删除runtime文件夹或者执行 //清理指定表结构缓存数据 Yii::$app->db-> ...

  8. JavaScript Dom基础-9-Dom查找方法; 设置DOM元素的样式; innerHTML属性的应用; className属性的应用; DOM元素上添加删除获取属性;

    JavaScript Dom基础 学习目标 1.掌握基本的Dom查找方法 domcument.getElementById() Domcument.getElementBy TagName() 2.掌 ...

  9. 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO

    刷新SQL Server所有视图.函数.存储过程 更多   sql   此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...

随机推荐

  1. hibernate.cfg.xml讲解

    <session-factory> <!-- 配置数据库连接信息 --> <!-- 数据库驱动 --> <property name="connec ...

  2. hadoop-spark-hive-hbase配置相关说明

    1. zookeeper 配置 cp app/ochadoop-och3.0.0-SNAPSHOT/zookeeper-3.4.5-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/ ...

  3. PLSQL_性能优化工具系列10_Automatic Database Diagnostic Monitor - ADDM

    2014-09-06 Created By BaoXinjian

  4. centos6.5安装配置fastdfs+nginx实现分布式图片服务器

    一.准备 yum groupinstall -y "Development Tools"yum install -y wget libevent-devel pcre-devel ...

  5. JAVA 匿名对象

    /* 匿名对象: 没有名字的对象 匿名对象的使用方式之一: 当对对象方法只调用一次时,我们可以用匿名对象来完成,比较简化. 匿名对象的使用方式之二: 匿名对象可以被当做实参传递 */ class Ca ...

  6. Java多线程之新类库中的构件DelayQueue

    DelayQueue 是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走.这种队列是有序的,即队头对象的延迟到期时间最长.注意:不 ...

  7. java中的IO整理

    写在前面:本文章基本覆盖了java IO的全部内容,java新IO没有涉及,因为我想和这个分开,以突出那个的重要性,新IO哪一篇文章还没有开始写,估计很快就能和大家见面.照旧,文章依旧以例子为主,因为 ...

  8. Citrix 服务器虚拟化之八 Xenserver虚拟机模版

    Citrix 服务器虚拟化之八 Xenserver虚拟机模版 XenServer与VMware不同,Vmware只能将现有的VM转换成模版,而XenServer具有两种方法:一种是将现有 VM 转换为 ...

  9. redis在.net架构中的应用(1)--使用servicestack连接redis(转)

    引言:作为少有的.net架构下的大型网站,stackoverflow曾发表了一篇文章,介绍了其技术体系,原文链接http://highscalability.com/blog/2011/3/3/sta ...

  10. .NET技术+25台服务器怎样支撑世界第54大网站(转)

    [编者按]StackOverflow是一个IT技术问答网站,用户可以在网站上 提交和回答问题.当下的StackOverflow已拥有400万个用户,4000万个回答,月PV5.6亿,世界排行第54.然 ...