[RockWell FTPC]对象介绍_AT Definitions

创建表

新建一个简单的人员信息表user_info,设置以下三项,其余信息暂时选择默认
○ 设置表名,描述、模块
○ 字段包含主键,姓名,年龄,填写字段说明
○ 设置id为唯一索引
在这里插入图片描述

数据库

当创建AT表之后,数据库自动生成了一张表AT_user_info,需要注意前缀AT_;
在这里插入图片描述
通过数据库我们可以发现两件事
○ 我们添加的字段都多了后缀,这个后缀代表了字段的类型,如S代表string,I代表long
○ 除了我们添加的字段外,平台自动填了一些常用字段,如atr_key,creation_time。

增删改查代码示例

保存数据


//方式一,常用
atHandler = createATHandler("user_info")
atRow = atHandler.createATRow()
atRow.setValue("id", "100001")
atRow.setValue("name", "zhangsan")
atRow.setValue("age", 18)
response = atHandler.save()
if(response.isError())
{
    println("保存失败:"+response.getFirstErrorMessage())
}else
{
    println("保存成功")
}


//方式二
objATDef = getATDefinition("user_info")
objATRow = objATDef.createATRow_("Row_Test") 
objATRow.setValue("id", "100002")
objATRow.setValue("name", "lisi")
objATRow.setValue("age", 20)
r = objATRow.save(null, null, null)
checkAndDisplayResponse(r)


查询数据

//sql查询
sql = "SELECT id_s,name_s,age_i FROM AT_USER_INFO aui WHERE ID_S ='100001'"
list = getArrayDataFromActive(sql)
printAll(list.get(0))

//过滤器查询
atRowFilter = createATRowFilter("user_info")
atRowFilter.forColumnNameEqualTo("id","100001")
list = atRowFilter.exec()
atRow = list.get(0)
println(atRow.getValue("name"))

修改数据

//方式一,常用
atRowFilter = createATRowFilter("user_info")
atRowFilter.forColumnNameEqualTo("id","100001")

atHandler = createATHandler("user_info")
atRowVector = atHandler.getATRowsByFilter(atRowFilter,true)
atRow = atRowVector.elementAt(0)
atRow.setValue("age", "22")
response = atHandler.save()
if(response.isError())
{
    println("保存失败:"+response.getFirstErrorMessage())
}else
{
    println("保存成功")
}

//方式二
objATDef  = getATDefinition("user_info")
objATRow  = objATDef .getATRowByName("Row_Test")
objATRow .setValue("age",24)
r = objATRow.save(null, "Comment",null)
checkAndDisplayResponse(r)


删除数据

atRowFilter = createATRowFilter("user_info")
atRowFilter.forColumnNameEqualTo("id","100002")
list = atRowFilter.exec()
atRow = list.get(0)
println(atRow.getValue("name"))

response = atRow.delete(null,null,null)
if(response.isError())
{
    println("删除失败")
}

AT表属性说明

autoNameCreation

如果此属性设置为true,则如果用户未指定GUID,系统将为ATRow名称生成唯一的GUID。如果设置为false,如果用户未指定GUID,ATRow名称将为“NOTSET”。
此属性仅适用于ATDefinition的createATRow_()方法,objATDef.createATRow_() 是可以指定row名称的,当未指定名称时,ATRow名称将为“NOTSET”。
在这里插入图片描述

 objATDef = getATDefinition("user_info")
// objATRow = objATDef.createATRow_("Row_Test") 
 objATRow = objATDef.createATRow_() 
 objATRow.setValue("id", "100008")
 objATRow.setValue("name", "lisi")
 objATRow.setValue("age", 20)
 r = objATRow.save(null, null, null)
 checkAndDisplayResponse(r)

在这里插入图片描述

category

表模块,方便分类,长度最多50
在这里插入图片描述

dataManagementType

◦TYPE_PURGEABLE:
数据被标记为可删除数据,并将在计划的清除作业期间删除。对于此选择,应用程序表的行名称不需要是唯一的。这是默认设置。
◦TYPE_STATIC:
数据被标记为静态数据,在计划的清除作业期间不会被删除。对于此选择,可应用的行名称不需要是唯一的。
◦TYPE_EXPORTABLE:
默认情况下,应用程序表行不可导出。只有可应用的定义才可导出。如果要使应用程序表行也可导出,请选择此数据管理类型。对于此选择,应用程序表的行名称必须是唯一的。可导出应用程序表行的时间数据是静态的。因此,在计划的清除作业期间不会删除它。
另外,数据是否会被删除还与atRow的purage_staus有关,如下表所示
在这里插入图片描述

数据导出要选择ATRows
在这里插入图片描述
在这里插入图片描述

growthType

确定此对象的运行时应用程序表的增长类型。此属性用于在创建表以及运行FactoryTalkProductionCentre(FTPC)Administrator中的重组实用程序时,将表放置到正确的表空间或文件组中。选择范围:
● DATABASE_GROWTH_TYPE_SLOW:如果运行时应用程序表增长缓慢,请选择此选项。这是默认设置。
● DATABASE_GROWTH_TYPE_FAST:如果运行时应用程序表是快速增长的,请选择此选项。

detailsPageSize

定义ATRow每页返回的行数。getPagedDetailRows(ATDefinition详细信息)方法。默认值为0,这意味着所有详细信息都在一个页面上获取。此属性仅在lazyFetchDetails属性设置为true时适用。如果lazyFetchDetails属性设置为false,则忽略此属性。

lazyFetchDetails

定义getATRows…(…)方法是否包含细节ATRows。
如果为false,则该方法将返回所有详细信息,除非getDetails参数设置为false。这是默认设置。调用saveATRow(…)方法时,将保存对详细信息的任何更改,并刷新详细信息。
如果为true,则即使getDetails参数设置为true也不会返回详细信息。为了返回详细信息,您必须调用ATRow。getPagedDetailRows(ATDefinition详细信息)方法。调用saveATRow(…)方法时,将保存对详细信息的任何更改,但不会刷新详细信息。

loggingLevel

应用程序表定义的日志记录级别。该值用于运行时业务规则。选择范围:
NONE:不会记录此表上的任何事务。
STANDARD:此表上成功的事务(即插入、更新和删除)记录到TRX_BASE表中。
STANDARD_AND_TEST_AND_DATA:此表上成功的事务(即插入、更新和删除)和数据收集事务记录到TRX_BASE表中。这是默认设置。

name

应用程序表定义的名称。最多26个字符。数据库中的表名前缀为AT_。审核表的名称前缀为AA_。只要应用程序表没有行(未收集数据),就可以在数据库中创建应用程序表后重命名该表。

productColumnPrefix

创建新列时使用的前缀。例如,前缀QM可以设置为在AT定义中创建将用于质量管理应用程序的列。
productColumnPrefix属性仅供开发人员使用。如果此属性中列出了前缀,则在AT定义中创建新列时不要使用此前缀。请注意,前缀不区分大小写。例如,如果前缀定义为QM,则不要创建前缀为QM、QM、QM或QM的列。

supportStateProxy

此应用程序表定义的ATRow是否可以与StateProxys对象关联。将此属性设置为true,以便允许定义的ATRows与StateProxy对象关联。有关StateProxy对象的详细信息,请参见将状态应用于非状态对象。

对象关联的表

● APP_TABLE 表
● APP_TABLE_BLOB
● APP_TABLE_COLUMN 列
● APP_TABLE_INDEX 索引

//查询表
SELECT * FROM APP_TABLE at2 
WHERE at2.AT_NAME ='user_info'

//查询列
SELECT at2.AT_NAME 表名 , atc.ATC_NAME 列名,atc.DESCRIPTION 列描述 ,
atc.ATC_DATATYPE 数据类型 ,atc.IS_NULLABLE 为空 ,atc.TEXT_LENGTH 长度 ,atc.DEFAULT_VALUE 默认值
FROM APP_TABLE_COLUMN atc 
LEFT JOIN APP_TABLE at2 ON atc.AT_KEY =at2.AT_KEY 
WHERE at2.AT_NAME ='user_info'

//查询索引
SELECT *  FROM APP_TABLE_INDEX ati 
LEFT JOIN APP_TABLE at2 ON ati.AT_KEY =at2.AT_KEY 
WHERE at2.AT_NAME ='user_info'

AT表扩展字段

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值