Excel 如何以编程方式向场景添加上下文引用

Excel 如何以编程方式向场景添加上下文引用,excel,vba,import,enterprise-architect,object-model,Excel,Vba,Import,Enterprise Architect,Object Model,我目前正在将导入器脚本Simple VBA Excel从bellekens修改为EA导入器v4 我成功地导入了一个包含场景和场景步骤的用例。我正在寻找一种以编程方式添加上下文引用的方法 我目前正在使用用例属性>规则>场景>上下文引用手动添加它们 有没有办法从API中添加这些上下文引用?我在 基本上,如果您将参与者与用例关联,它将显示在上下文引用表中 要以编程方式创建条目,我只需以编程方式在您的用例和actor之间添加链接。我实际上编写了一个这样做的程序。它查看逻辑类模型,并在用例场景步骤使用该类

我目前正在将导入器脚本Simple VBA Excel从bellekens修改为EA导入器v4

我成功地导入了一个包含场景和场景步骤的用例。我正在寻找一种以编程方式添加上下文引用的方法

我目前正在使用用例属性>规则>场景>上下文引用手动添加它们

有没有办法从API中添加这些上下文引用?

我在

基本上,如果您将参与者与用例关联,它将显示在上下文引用表中

要以编程方式创建条目,我只需以编程方式在您的用例和actor之间添加链接。

我实际上编写了一个这样做的程序。它查看逻辑类模型,并在用例场景步骤使用该类名时向其添加上下文引用

这是进行实际链接的部分:

function linkDomainClassesWithUseCases(dictionary,regExp,usecases)
    Session.Output usecases.Count & " use cases found"
    dim usecase as EA.Element

    'loop de use cases
    for each usecase in usecases
        Repository.WriteOutput "Link to Logical Data Model", "Processing use case: " & usecase.Name, 0
        'first remove all automatic traces
        removeAllAutomaticTraces usecase
        'get all dependencies left
        dim dependencies
        set dependencies = getDependencies(usecase)
        dim scenario as EA.Scenario
        'loop scenarios
        for each scenario in usecase.Scenarios
            dim scenarioStep as EA.ScenarioStep
            for each scenarioStep in scenario.Steps
                'first remove any additional terms in the uses field
                scenarioStep.Uses = removeAddionalUses(dependencies, scenarioStep.Uses)
                dim matches
                set matches = regExp.Execute(scenarioStep.Name)
                dim classesToMatch 
                set classesToMatch = getClassesToMatchDictionary(matches, dictionary)
                dim classToMatch as EA.Element
                for each classToMatch in classesToMatch.Items
                    Session.Output "scenarioStep.Uses before " & scenarioStep.Uses
                    if not instr(scenarioStep.Uses,"LDM-" & classToMatch.Name) > 0 then
                        if len(scenarioStep.Uses) > 0 then 
                            'add a space if needed
                            scenarioStep.Uses = scenarioStep.Uses & " "
                        end if
                        'add the name of the class
                        scenarioStep.Uses = scenarioStep.Uses & "LDM-" & classToMatch.Name
                    end if
                    'create the dependency between the use case and the Logical Data Model class
                    linkElementsWithAutomaticTrace usecase, classToMatch
                    Session.Output "adding link between " & usecase.Name & " and Logical Data Model class " & classToMatch.Name & " because of step " & scenario.Name & "." & scenarioStep.Name
                next
                'save scenario step
                scenarioStep.Update
                scenario.Update
            next
        next
    next
end function

function linkElementsWithAutomaticTrace(sourceElement, TargetElement)
    dim trace as EA.Connector
    set trace = sourceElement.Connectors.AddNew("","trace")
    trace.Alias = "automatic"
    trace.SupplierID = TargetElement.ElementID
    trace.Update
end function