在 Enterprise Architect 中获取调用操作操作的操作详细信息
Get operation details of a Call Operation Action in Enterprise Architect
我的 Activity 图中有一个 CallOperation 操作。如何通过DB或通过API.
获取调用操作action的操作集
如果您 link 将您的 Calloperation 调用到模型中的实际操作,它看起来像这样:
您可以select使用属性中的“行为”选项卡进行操作
API没有公开这些信息,所以你要自己去找。
操作的 GUID 存储在数据库字段 t_object.Classifier_guid
中。您可以使用方法EA.Repository.GetMethodByGuid()
进入操作。
这是它在我的 framework
中的实现方式
/// <summary>
/// The operation to be invoked by the action execution.
/// </summary>
public UML.Classes.Kernel.Operation operation {
get{
// first get the operations guid which is stored in the Classifier_guid column
XmlDocument operationGUIDxml = this.EAModel.SQLQuery(@"select o.Classifier_guid from t_object o
where o.Object_ID = " + this.id.ToString());
XmlNode operationGUIDNode = operationGUIDxml.SelectSingleNode(this.EAModel.formatXPath("//Classifier_guid"));
return this.EAModel.getOperationByGUID(operationGUIDNode.InnerText);
}
set{
// no API method available, so we need to update the database directly
// this.model.executeSQL(@"update t_object
// set Classifier_guid = "+ ((Operation)value).GUID
// + "where Object_ID = " + this.id.ToString();
//TODO add GUID property to Operation
throw new NotImplementedException();
}
}
我的 Activity 图中有一个 CallOperation 操作。如何通过DB或通过API.
获取调用操作action的操作集如果您 link 将您的 Calloperation 调用到模型中的实际操作,它看起来像这样:
您可以select使用属性中的“行为”选项卡进行操作
API没有公开这些信息,所以你要自己去找。
操作的 GUID 存储在数据库字段 t_object.Classifier_guid
中。您可以使用方法EA.Repository.GetMethodByGuid()
进入操作。
这是它在我的 framework
中的实现方式 /// <summary>
/// The operation to be invoked by the action execution.
/// </summary>
public UML.Classes.Kernel.Operation operation {
get{
// first get the operations guid which is stored in the Classifier_guid column
XmlDocument operationGUIDxml = this.EAModel.SQLQuery(@"select o.Classifier_guid from t_object o
where o.Object_ID = " + this.id.ToString());
XmlNode operationGUIDNode = operationGUIDxml.SelectSingleNode(this.EAModel.formatXPath("//Classifier_guid"));
return this.EAModel.getOperationByGUID(operationGUIDNode.InnerText);
}
set{
// no API method available, so we need to update the database directly
// this.model.executeSQL(@"update t_object
// set Classifier_guid = "+ ((Operation)value).GUID
// + "where Object_ID = " + this.id.ToString();
//TODO add GUID property to Operation
throw new NotImplementedException();
}
}