You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

活动图仿真中如何更新sum变量并获取动作的标签值i?

活动图仿真中更新上下文变量的建模方案

核心问题定位

你遇到的关键问题是不透明动作脚本里的this指向执行脚本本身,而非动作实例,导致无法直接获取动作的i标签值。

可行解决方案

1. 正确获取当前动作实例(Groovy示例)

在不透明动作的脚本中,通过getContext().getSelf()拿到当前执行的动作对象,再获取标签值:

def currentAction = getContext().getSelf()
def iValue = ALH.getTagValue(currentAction, "i")
sum = sum + iValue

2. 规范建模:用输入引脚传递参数

放弃依赖标签值,改用UML标准的输入引脚传递i值,更直观且易维护:

  • 给每个动作添加类型为int的输入引脚,命名为i
  • 建模时给每个动作的i引脚直接赋值(比如action1设为2,action2设为3)
  • 不透明动作脚本中直接引用引脚变量:
    sum = sum + i
    

3. 上下文变量访问确认

确保sum是上下文块的实例变量,若脚本中直接访问sum失效,可通过以下方式明确获取:

def contextObj = getContext().getContextObject()
contextObj.sum = contextObj.sum + iValue

最佳实践

  • 优先用引脚传递参数:标签多用于元数据描述,引脚是UML活动图传递数据的标准方式,可读性和可维护性更强
  • 避免模糊的this引用:明确通过getContext()系列方法获取目标对象
  • 仿真前验证参数赋值:确认动作的i值(标签或引脚)和上下文sum的初始化状态,避免计算异常

内容的提问来源于stack exchange,提问作者xy3333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:32:34