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

Enterprise Architect中Python调用GetBaselines接口报类型不匹配错误排查

问题原因与解决方案

1 代码笔误修正

你当前代码存在一处明显的变量赋值遗漏:

# 原错误写法,返回的Package对象未赋值
rep.GetPackageByGuid(pkgguid)
# 修正为
pkg = rep.GetPackageByGuid(pkgguid)

你注释提到print("pgkname: ", pkg.Name)可正常运行,大概率是你在其他位置提前定义了pkg变量,建议统一修正避免后续变量混乱。

2 核心报错修复

你遇到的Type mismatch类型不匹配错误,是Python的win32com库调用COM接口时对可选参数的推断缺陷导致的:
EA的Project.GetBaselines方法官方定义包含2个参数,第二个IncludeHistory参数虽然标注为可选,但win32com无法自动补全缺省参数的类型信息,必须主动传入布尔值才能通过类型校验。

修正后完整代码

def get_baselines(pkgguid):
    """ Get list of baselines for package """
    rep = win32com.client.Dispatch("EA.App").Repository
    # 修正变量赋值
    pkg = rep.GetPackageByGuid(pkgguid)
    print("pgkname: ", pkg.Name)
    project = rep.GetProjectInterface()
    print ("guid xml: ", project.GUIDtoXML(pkgguid), "GUID: ", pkgguid)
    # 主动传入第二个可选参数False
    pkgxml = project.GetBaselines(project.GUIDtoXML(pkgguid), False)
    print (pkgxml)

修正后即可正常获取到基线的XML格式返回结果,你可以根据需求解析XML提取基线的版本、创建时间、备注等字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:00:02