前言:
Teamcenter系统配置迁移时候,需要将客制化查询从原有系统导出后再导入新系统,比如从dev系统导出查询到sit系统等,有时候会遇到中文乱码问题,需要特殊处理一下。
错误:
项目中有个客制化查询里“用户条目本地化关键字”使用的是中文,导出查询文件时候中文“创建时间早于”和“创建时间晚于”均变成了乱码。

图1 :导出查询中文乱码
<?xml version="1.0" encoding="utf-8"?><!-- GENERATED BY: PLM XML SDK 7.0.11.069 --><plmxml_bus:PLMXMLBusinessTypes xmlns="http://www.plmxml.org/Schemas/PLMXMLSchema"xmlns:plmxml_bus="http://www.plmxml.org/Schemas/PLMXMLBusinessSchema"language="en-us" time="21:10:48" schemaVersion="6" author="Teamcenter V12000.4.1.11_20201002.00 - test@IMC--1807451922(-1807451922)" date="2021-03-15" languages="cs-cz de-de en-us es-es fr-fr it-it ja-jp ko-kr pl-pl pt-br ru-ru zh-cn zh-tw"><plmxml_bus:SavedQueryDef id="id1" name="__FX_L6QueryEDACOMPRevision" nameRef="#id2" descriptionTextRef="#id3" queryFlag="0" queryClass="EDAComp Revision"><Description>Find workspace object(s)</Description><ApplicationRef application="Teamcenter" label="g7vB0ncUJR0huD" version="g7vB0ncUJR0huD"></ApplicationRef><plmxml_bus:QueryClause id="id4" stringValue="SELECT qid FROM EDAComp Revision WHERE "object_name" = "${object_name = }" AND "owning_user.user_id" = "${user_id = }" AND "fx8_Category" = "${fx8_Category = }" AND "fx8_DellSymbol" = "${fx8_DellSymbol = }" AND "fx8_FootprintCategory" = "${fx8_FootprintCategory = }" AND "fx8_StandardPN" = "${HHPN = }" AND "fx8_ItemType" = "${fx8_ItemType = }" AND "fx8_MfrPN" = "${fx8_MfrPN = }" AND "fx8_PrjName" = "${fx8_PrjName = }" AND "fx8_StandardPN" = "${StandardPN = }" AND "fx8_Symbol" = "${fx8_Symbol = }" AND "creation_date" >= "${鍒涘缓鏃堕棿鏃╀簬 = }" AND "creation_date" <= "${鍒涘缓鏃堕棿鏅氫簬 = }""></plmxml_bus:QueryClause></plmxml_bus:SavedQueryDef><plmxml_bus:Text id="id2" primary="en-us"></plmxml_bus:Text><plmxml_bus:Text id="id3" primary="en-us"></plmxml_bus:Text></plmxml_bus:PLMXMLBusinessTypes>
当将这个有乱码的导出文件导入另外的系统时候,中文查询条件仍然是乱码状态。


图2 :导入包含乱码的查询文件到另外的系统仍然是乱码状态
解决:
将导出的查询文件中encoding由utf-8改为gbk2312,并将乱码部分用中文修改一下

图3:修改后的查询文件
<?xml version="1.0" encoding="gbk2312"?><!-- GENERATED BY: PLM XML SDK 7.0.11.069 --><plmxml_bus:PLMXMLBusinessTypes xmlns="http://www.plmxml.org/Schemas/PLMXMLSchema"xmlns:plmxml_bus="http://www.plmxml.org/Schemas/PLMXMLBusinessSchema"language="en-us" time="21:10:48" schemaVersion="6" author="Teamcenter V12000.4.1.11_20201002.00 - test@IMC--1807451922(-1807451922)" date="2021-03-15" languages="cs-cz de-de en-us es-es fr-fr it-it ja-jp ko-kr pl-pl pt-br ru-ru zh-cn zh-tw"><plmxml_bus:SavedQueryDef id="id1" name="__FX_L6QueryEDACOMPRevision" nameRef="#id2" descriptionTextRef="#id3" queryFlag="0" queryClass="EDAComp Revision"><Description>Find workspace object(s)</Description><ApplicationRef application="Teamcenter" label="g7vB0ncUJR0huD" version="g7vB0ncUJR0huD"></ApplicationRef><plmxml_bus:QueryClause id="id4" stringValue="SELECT qid FROM EDAComp Revision WHERE "object_name" = "${object_name = }" AND "owning_user.user_id" = "${user_id = }" AND "fx8_Category" = "${fx8_Category = }" AND "fx8_DellSymbol" = "${fx8_DellSymbol = }" AND "fx8_FootprintCategory" = "${fx8_FootprintCategory = }" AND "fx8_StandardPN" = "${HHPN = }" AND "fx8_ItemType" = "${fx8_ItemType = }" AND "fx8_MfrPN" = "${fx8_MfrPN = }" AND "fx8_PrjName" = "${fx8_PrjName = }" AND "fx8_StandardPN" = "${StandardPN = }" AND "fx8_Symbol" = "${fx8_Symbol = }" AND "creation_date" >= "${创建时间早于 = }" AND "creation_date" <= "${创建时间晚于 = }""></plmxml_bus:QueryClause></plmxml_bus:SavedQueryDef><plmxml_bus:Text id="id2" primary="en-us"></plmxml_bus:Text><plmxml_bus:Text id="id3" primary="en-us"></plmxml_bus:Text></plmxml_bus:PLMXMLBusinessTypes>
修改过的查询文件导入系统后不再有乱码情况


图4:修改过的查询文件导入系统后不再有乱码情况
总结:
将导在配置查询时候“用户条目本地化关键字”需要避免使用中文,以避免导出查询是中文乱码问题,如果确实需要是客制化中文,则可以通过本地化条目来实现中文查询条件。自定义本地化条目参照Teamcenter多语言环境中二次开发使用查询的技巧中方案3
为您推荐

文章转载自PLM有个号,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




