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字段中的內容

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