如何以编程方式将上下文引用添加到场景中

我目前正在修改import商脚本简单的VBA Excel到EAimport商v4从bellekens。

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

我目前将它们手动添加到用例“属性”>“规则”>“scheme”>“上下文引用”中。

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

我在http://sparxsystems.com/forums/smf/index.php?topic=4735.0上find了答案

基本上,如果您将angular色与用例相关联,则会在上下文参考表中显示。

创build条目programmatical只是以编程方式添加您的用例和演员之间的链接。

我其实写了一个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