执行SetupActivity时如何获取ProductType信息?
获取SetupTrigger创建的SetupActivity中的ProductType信息
常规的ProductionProcess场景下,你可以通过以下方式获取ProductType或ProductInstance:
var instance = ((ProductionProcess)activityStart.Process).ProductInstance; var type = ((ProductionProcess)activityStart.Process).ProductInstance.Type;
但对于由SetupTrigger创建的SetupActivity,要获取预期生产的ProductType,可从Activity关联的Trigger对象入手,示例代码如下:
public override void StartActivity(ActivityStart activityStart) { _currentSession = activityStart; switch (activityStart.Activity) { case SomeSetupActivity setupActivity: // 获取对应的SetupTrigger实例 if (setupActivity.Trigger is SetupTrigger setupTrigger) { // 从SetupTrigger中提取预期的ProductType // 以下属性名需根据实际业务模型调整,示例为常见命名方式 var type = setupTrigger.TargetProductType; // 若触发器关联了生产计划,也可从计划中获取 // var type = setupTrigger.AssociatedProductionPlan.TargetProductType; } break; // 其他Activity类型的处理逻辑 } }
- 核心逻辑是通过
setupActivity.Trigger拿到SetupTrigger实例,这类触发器通常会存储目标生产的配置信息 - 具体属性名称需匹配你的业务模型,比如部分系统中可能是
DesiredProductType或关联到ProductionOrder对象来获取
内容的提问来源于stack exchange,提问作者1nf0rmagician
相关产品推荐
相关产品推荐

