Zammad: 报告通过 API 删除工单时生成工单列表时抛出异常

创建于 2019-04-16  ·  3评论  ·  资料来源: zammad/zammad

您好 - 感谢您提出问题。 在创建问题之前请确保以下事项 - 谢谢! 🤓 自 11 月 15 日起,我们在社区委员会处理所有请求,除了真正的错误。 完整解释:https://community.zammad.org/t/major-change-regarding-github-issues-community-board/21 请发帖: - 功能请求 - 开发问题 - 板上的技术问题 -> https:// /community.zammad.org ! 如果您认为遇到了错误,请继续: - 搜索现有问题和 CHANGELOG.md 以查找您的问题 - 可能已经有解决方案 - 如果可能,请确保使用最新版本的 Zammad - 添加 `log/production. log` 文件从你的系统。 注意:确保其中没有机密数据! - 请用英文写下问题 - 不要删除模板 - 否则我们将关闭问题而不做进一步评论 - 在我们的邮件列表中询问有关 Zammad 配置和使用的问题。 请参阅:https://zammad.org/participate 注意:我们总是尽力而为。 不幸的是,有时请求太多,我们无法一次处理所有事情。 如果您想优先处理/升级您的问题,您可以通过支持合同来实现(请参阅 https://zammad.com/pricing#selfhosted)。 * 当您提交问题时,上面的文本块将自动删除 *

这篇文章已由@MrGeneration编辑,确实符合我们所需的格式,并补充更多信息

信息:

  • 使用的 Zammad 版本:3.0
  • 安装方式(源码、包、..):任意
  • 操作系统:任意
  • 数据库+版本:任意
  • Elasticsearch 版本:5.6(可能有)
  • 浏览器+版本:任意
  • 票号:#1047094,#1048216

预期行为:

当使用调度器删除工单(或通过 API 或控制台手动删除)时,这不会影响报告模块。 这意味着,您的报告将正常运行并返回所有可用的有效数据。

实际行为:

使用调度程序、控制台或 API 删除票证时,如果 elasticsearch 返回我们数据库中不再存在的票证,则会引发错误。

控制台将抛出以下内容:
image

图表将毫无问题地创建,但下面的工单列表将不会更新或创建。

这部分是 #2246 的回归(部分原因是它抑制了在报告的另一部分中出现膝盖错误的错误)。

重现行为的步骤:

  • 创建一些票
  • 打开浏览器控制台
  • 打开报告并检查统计信息,一切正常(浏览器控制台“干净”)
  • 删除一张或两张票
  • 重新加载并再次打开报告(浏览器控制台将抛出上述错误)

这种行为的原因:

此问题是由过时的 elasticsearch 索引(这将由另一个问题很快解决)和不太健壮的错误转义引起的。

是的,我确定这是一个错误,没有功能请求或一般问题。

原帖

信息:

  • 使用的 Zammad 版本:docker latest 2.9.x
  • 安装方式(源码、包、..):docker

预期行为:

  • 像这样的门票清单
    image

实际行为:

  • 没有显示票证表,js控制台显示错误:
application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:22 > Uncaught TypeError: Cannot read property 'customer_id' of null
    at Function.n._fillUp (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:22)
    at Function.n.fullLocal (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:21)
    at Object.success (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:42)
    at c (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:2)
    at Object.fireWith [as resolveWith] (application->a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:2)
    at i (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:3)
    at XMLHttpRequest.<anonymous> (application-a35ba2c058c01543bd0e17e5377c39817d3a79131917e530a74dfaea7a7fe689.js:3)

重现行为的步骤:

  • 像这样通过 API 删除一些票证:
export TOKEN=`cat TOKEN`
TICKETS=``curl -H "Authorization: Token token=$TOKEN" https://YOURDOMAINHERE/api/v1/tickets/search?query=group:_delete_these_tickets_|jq ".tickets[]"`
for i in $TICKETS ; do
        echo $I
        curl -H "Authorization: Token token=$TOKEN" -s https://YOURDOMAINHERE/api/v1/tickets/$i -X > DELETE
done

现在票仍然显示在“ https://YOURDOMAINHERE/api/v1/reports/sets ” AJAX 调用中

duplicate

最有用的评论

正如你所说的@thorsteneckel
谢谢你修复

所有3条评论

@SummerStorm - 我在客户机器上与@MrGeneration一起调试它,我们找到了根本原因和可行的解决方案。 修复正在进行中。 我从这里接手👍

我们发现这个问题是#2611 的症状,Zammad 3.1 已经修复了这个问题。 您能否将您的 Zammad 安装更新到最新的稳定版本,重建您的搜索索引(通过运行zammad run rake searchindex:rebuild )然后重试。 这应该解决它。 如果没有,请告诉我。 我暂时关闭它。

正如你所说的@thorsteneckel
谢谢你修复

此页面是否有帮助?
0 / 5 - 0 等级