Windchill 10.0 建模,定义BLOB字段

1.完全新建一个模型场景
2.在已有的模型上增加属性/修改属性场景

今天讲一下在已有模型上修改属性的场景:
AS-IS: data字段为string类型,用来存放发送给ERP的xml内容
TO-BE:因为数据量的扩大,string类型已经无法满足,需要改为BLOB字段

修改模型:

AS-IS:

@GeneratedProperty(
                        name = "data",
                        type = String.class,
                        supportedAPI = SupportedAPI.PUBLIC,
                        javaDoc = "发布SAP数据",
                        constraints = @PropertyConstraints(
                                required = true,
                                upperLimit = 10000
                        )
                ),

TO-BE:

@GeneratedProperty(
                        name = "data",
                        type = String.class,
                        columnProperties =  @ColumnProperties(columnName = "data",
                                         columnType = ColumnType.INLINE_BLOB
                        ),
                        supportedAPI = SupportedAPI.PUBLIC,
                        javaDoc = "发布SAP数据不限制数据长度",
                        constraints = @PropertyConstraints(
                                required = true
                        )
                ),

修改了模型的字段,我们定义新的模型关联新的表

tableProperties = @TableProperties(
                tableName="GPPTOSAPINFO_NEW",
                oracleTableSize = OracleTableSize.HUGE
        )

然后执行模型相关步骤,生成新表,详细步骤:
模型修改
1)将源代码:模型文件.java模型类放到src对应的src/ext/source/xx/xx目录下;
2)在windchill shell中执行命令生成模型对应的java类:
ant -f bin/tools.xml class -Dclass.includes=ext/source/xx/xx/*
执行ant命令后后台根据我们的模型文件.java生成了带下划线的文件
3)将D:\ptc\Windchill_10.0\Windchill\src_gen\ext\source\xx\xx目录下模型对应带下划线的java类copy到src对应的src/ext/source/xx/xx目录下;
4)在windchill shell中执行命令生成对应的SQL脚本
ant -f bin/tools.xml sql_script -Dgen.input=ext.source.xx.xx.*
5)widnchill shell切换到cd db/sql3目录,用wcadmin用户连接SQLPLUS
widnchill shell中输入>sqlplus user/pwd@数据库实例
SQLPLUS执行删除相关的索引>@Drop_pkg_sap_Index.sql
SQLPLUS执行创建表的SQL>@Make_pkg_sap_Table.sql
SQLPLUS执行创建索引的SQL>@Make_pkg_sap_Index.sql
6) 检查codebase/ext/source/xx/xx目录下是否生成新的ser文件

将相关代码部署到codebase目录即可。

查询BLOB字段的时候,只需要用对象.getData();就可以获取BLOB字段中的内容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章