You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SQL查询提取SysML值属性的默认初始值?

解决SysML值属性初始值获取问题

修改SQL查询关联t_xref表获取初始值

SysML值属性的初始(默认)值在EA数据库中通常存储在t_xref表,对应Type为PropertyDefault的条目,Client字段关联值属性的ea_guid。以下是修改后的查询,兼容你当前的筛选逻辑:

SELECT 
    property.ea_guid AS CLASSGUID, 
    property.Object_Type AS CLASSTYPE, 
    property.Name, 
    property.Note as [Notes], 
    classifier.Name AS TYPE,
    -- 针对默认.qeax(Jet数据库)的初始值提取逻辑
    CASE 
        WHEN xref.Description LIKE '%<DefaultValue>%' THEN
            MID(xref.Description, INSTR(xref.Description, '<DefaultValue>') + 15, INSTR(xref.Description, '</DefaultValue>') - INSTR(xref.Description, '<DefaultValue>') - 15)
        ELSE
            xref.Description
    END AS [Default Value]
FROM t_object property   
LEFT JOIN t_object classifier ON property.PDATA1 = classifier.ea_guid   
LEFT JOIN t_object block on property.ParentID = block.Object_ID
-- 关联t_xref筛选初始值条目
LEFT JOIN t_xref xref ON property.ea_guid = xref.Client AND xref.Type = 'PropertyDefault' AND xref.Name = 'DefaultValue'
WHERE block.Object_ID = #OBJECTID# AND property.Object_Type = 'Part' AND classifier.Object_Type = 'DataType'  
ORDER BY property.Name

迁移至Windows数据库(SQL Server)后的适配

如果切换到SQL Server,可改用XML解析逻辑提升可靠性:

SELECT 
    property.ea_guid AS CLASSGUID, 
    property.Object_Type AS CLASSTYPE, 
    property.Name, 
    property.Note as [Notes], 
    classifier.Name AS TYPE,
    -- SQL Server下解析XML格式的初始值
    CASE 
        WHEN xref.Description IS NOT NULL THEN
            CAST(xref.Description AS XML).value('(DefaultValue)[1]', 'NVARCHAR(MAX)')
        ELSE
            NULL
    END AS [Default Value]
FROM t_object property   
LEFT JOIN t_object classifier ON property.PDATA1 = classifier.ea_guid   
LEFT JOIN t_object block on property.ParentID = block.Object_ID
LEFT JOIN t_xref xref ON property.ea_guid = xref.Client AND xref.Type = 'PropertyDefault' AND xref.Name = 'DefaultValue'
WHERE block.Object_ID = #OBJECTID# AND property.Object_Type = 'Part' AND classifier.Object_Type = 'DataType'  
ORDER BY property.Name

模板内容选择器优化建议

如果之前用模板内容选择器无法筛选值属性,可尝试添加以下匹配条件:

  • 匹配ObjectType为Part
  • 匹配Classifier.ObjectType为DataType
  • 直接使用上述修改后的SQL查询作为内容源,比选择器更灵活可控

内容的提问来源于stack exchange,提问作者Lisa Morgan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 22:35:48