2016-05-16 72 views
4

我目前正在從bellekens修改進口商腳本簡單的VBA Excel來EA進口商V4。如何上下文引用添加到場景編程

我已成功導入包含場景和場景步驟的用例。我正在尋找一種以編程方式添加上下文引用的方式。

我現在將它們手動添加到用例屬性>規則>方案>上下文引用中。

有沒有辦法從API添加論文引用方面?

回答

1

我實際上寫了一個VBScript那樣做。它會查看邏輯類模型,並在該用例情景步驟使用該類名時向其添加上下文引用。

這裏的那部分進行實際的鏈接:

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 
相關問題