【问题标题】:TFS Aggregator does not perform multiplication operationTFS 聚合器不执行乘法运算
【发布时间】:2015-10-31 02:36:06
【问题描述】:

我需要将请求中的两个字段相乘。所以我把下面的代码放到 AggregationItems.xml

<AggregatorItem name="score_mult" operationType="Numeric" 
                operation="Sum" linkType="Self" workItemType="Request">
    <TargetItem name="Score"/>
    <SourceItem name="DEV Score"/>
    <SourceItem name="Customer Score"/>
</AggregatorItem>

而且它根本不起作用。事件查看器中的应用程序日志也没有显示任何内容。这里的代码有问题吗?

【问题讨论】:

  • 对不起。操作成倍增加。复制了错误的版本。无论如何 sum 也不起作用。
  • 值得一提的是这是一个开源的服务器端插件:github.com/Vaccano/TFS-Aggregator.
  • 在没有更多上下文的情况下很难找出问题所在。您是否尝试过增加日志记录的详细程度?看起来你可以这样做&lt;AggregatorItems tfsServerUrl="http://your-tfs-url" loggingVerbosity="Diagnostic"&gt;
  • 日志一直在诊断,直到我第一次使用 TFSAggregator。帐户在此项目中具有管理权限。如果我在星期一找不到解决方案 - 我会调试它:)
  • @AlexeySoloviev,您的帐户还是运行 TFS 服务器的帐户?

标签: tfs tfs-workitem tfs-aggregator


【解决方案1】:

“旧”聚合器存在很多问题。最好尝试正在开发的新版本,即使我们还没有发布最终版本,它已经修复了旧聚合器中的许多问题。

可能导致此行为的问题:

  • 您的操作当前显示 operation="Sum" 而不是 "Multiply",如果您想要乘法,则需要更改
  • 仅当旧版本聚合器中的所有数据类型都相同时,乘法才有效。因此,请确保 TFS 进程配置中的所有字段均为 double
  • 您使用的 TFS 聚合器版本不支持整数字段。旧解决方案有一个分支,但有许多修复程序支持整数计算。见下文。
  • 通过显示名称引用字段比使用引用名称要脆弱得多。因此,您可以使用 YourCompany.Custom.DevScore 代替 DEV Score
  • TFS 服务帐户可能(如果配置正确)无权编辑项目集合中的工作项。如果需要,将其添加到贡献者组。
  • 如果配置正确,TFS 服务帐户不会以管理员身份运行,因此您需要为其创建一个事件源,以便事件日志消息传递工作。见下文。
  • 如果您有多个项目集合不要使用旧的 TFS 聚合器,它会尝试将一个集合中的工作项更改应用到您已配置的一个集合中的工作项。这可能会导致其他工作项中的数据不正确。
  • 在使用 DivideMultiply 规则时,空字段和值中的 0 处理存在多个问题。这可能会在您不期望的情况下导致除以 1。

这些问题已在 TFS Aggregator 2.0 的最新开发版本中得到解决。我们发布的最后一个测试版仍然存在一些问题,所以我建议从开发分支下载最新版本。你可以在这里找到:

有一个旧分支包含对“旧样式插件”中上述问题的许多修复,我们放弃了它以支持新系统。如果你愿意,你可以克隆这个确切的版本并构建它来解决你的很多问题,它适用于整数字段。

为了帮助调试,请将 Visual Studio 调试器附加到托管 TFS 的 IIS 服务器(我建议在本地计算机上运行的实例上执行此操作以进行测试)。要允许 TFS 将事件记录到事件日志中,请确保已创建“应用程序”源,您的 TFS 服务未以管理员身份运行并且无法自行创建该源。从运行提升的 powershell 控制台:

New-EventLog -LogName "Application" -Source "TFSAggregator"

【讨论】:

  • 谢谢!我注意到我的所有字段都是整数但不是双精度数。不幸的是,我只能在后天检查它。如果这将是一个解决方案,我会在这里发表评论。
  • “旧”聚合器仅适用于双精度。 “旧分支”支持整数。新的聚合器支持混合双精度和整数。
  • 是的。这是类型的问题。旧的 tfs 聚合器:github.com/Vaccano/TFS-Aggregator/releases/tag/1.2RC 只能乘以双字段。在不久的将来,我们将使用@jessehouwing 在上面的评论中推荐我们的新版本的 tfsaggregator。非常感谢!
  • 如果这回答了您的问题,请将其标记为答案。
【解决方案2】:

TFSA 聚合器 https://github.com/Vaccano/TFS-Aggregator/releases/tag/1.2RC 只能乘以双字段。 我将字段类型更改为 double,现在它工作正常。 在不久的将来,我们将使用新版本的 tfs 聚合器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多