2015-03-11 4 views
1

Я создал сообщение (разъем последовательности) между двумя элементами:Enterprise Architect сценарии: установить свойство Connector для диаграммы последовательности

dim w_src as EA.Element 
dim w_dst as EA.Element 

set w_src = Repository.GetElementByGuid("{C90B3F33-D01D-48d9-A46A-BD32CA8AF20E}") 
set w_dst = Repository.GetElementByGuid("{239814DD-D331-47dc-A198-F2C32E57471C}") 

Session.Output "Src: " & w_src.Name 
Session.Output "Dest: " & w_dst.Name 

dim w_con as EA.Connector 
set w_con = w_src.Connectors.AddNew("wocMessage", "Sequence") 
w_con.SupplierID = w_dst.ElementID 

w_con.Stereotype = "query" 

if not w_con.Update then : Session.Output "Error:" & w_con.GetLastError : exit sub : end if 

w_src.Connectors.Refresh 

Как установить программно дополнительные свойства соединителя (как я сделал с стереотипом, например) ? Свойства, которые я хочу, чтобы установить те, что я могу видеть на интерфейсе пользователя:

  • Возвращаемое значение
  • проточного типа
  • Control/Синхронизируйте
  • тип управления потоком/Lifecycle
  • типа потока управления/isReturn

EDIT: Благодаря ответу Герта, в дальнейшем полный код для программного программирования всех параметров, предоставляемых использованием r (Испытано на EA 10):

dim w_src as EA.Element 
dim w_dst as EA.Element 

set w_src = Repository.GetElementByGuid("{C90B3F33-D01D-48d9-A46A-BD32CA8AF20E}") 
set w_dst = Repository.GetElementByGuid("{239814DD-D331-47dc-A198-F2C32E57471C}") 

Session.Output "Src: " & w_src.Name 
Session.Output "Dest: " & w_dst.Name 

dim w_con as EA.Connector 
set w_con = w_src.Connectors.AddNew("wocMessage", "Sequence") 
w_con.SupplierID = w_dst.ElementID 

w_con.Stereotype = "query" 
w_con.StyleEx = "aliasparamsTO=int, string;paramvalues=5, theString;aliasparams=5, theString;alias=theAlias;" 
w_con.Subtype = "" ' Lifecycle: "New" | "Delete" | "" 
w_con.Notes = "This is a note" 

if not w_con.Update then : Session.Output "Error:" & w_con.GetLastError : exit sub : end if 

'w_con.MiscData(0) = "Asynchronous" 
dim w_params : w_params = "'retval=unsigned int;params=5, theString;paramsDlg=5, theString;retatt=returnedValue;'" 
dim w_condition : w_condition = "'theCondition'" 
dim w_constraint : w_constraint = "'theConstraint'" 
dim w_isIteration : w_isIteration = "'Iteration'" ' 'Iteration' | NULL 
dim w_synch : w_synch = "'Synchronous'" ' 'Synchronous' | 'Asynchronous' 
dim w_kind : w_kind = "'Call'" ' 'Call' | 'Signal' 
dim w_isReturn : w_isReturn = 0 ' 1 | 0 

Repository.Execute("update t_connector set PDATA1=" & w_synch _ 
    & ", PDATA2=" & w_params _ 
    & ", PDATA3=" & w_kind _ 
    & ", PDATA4=" & w_isReturn _ 
    & ", SourceCard=" & w_isIteration _ 
    & ", Btm_Mid_Label=" & w_condition _ 
    & ", SourceConstraint=" & w_constraint _ 
    & " where Connector_ID=" & w_con.ConnectorID) 

w_src.Connectors.Refresh 

Session.Output "[OK]" 

ответ

0

Вы должны проверить столбцы t_connector. Я знаю, что жизненный цикл помещается в подтип, но другие параметры могут храниться в другом месте.

Обратите особое внимание на колонки PDATA * и Style *. Они часто содержат этот тип информации.

+0

Спасибо, на самом деле свойства, которые я хочу установить, находятся в столбцах PDATA * и StyleEx t_connector. В любом случае API позволяет установить w_con.StyleEx = "....", но я не могу найти интерфейс для установки атрибутов PDATA *. Будет ли SQL-вставка единственным способом их установки? Я бы предпочел использовать интерфейс API. –

+0

Да, поле PDATA можно прочитать с помощью EA.Element.MiscData, но я не уверен, что вы можете использовать MiscData для их изменения. Если вы не можете, вы можете написать инструкцию sql update и выполнить ее с помощью Repository.Execute (sqlString) –

Смежные вопросы