Zammad: 通过管理界面删除工单作为作业

创建于 2016-10-19  ·  28评论  ·  资料来源: zammad/zammad

请允许删除票证,而不仅仅是关闭它们。 :smile_cat:

feature backlog

最有用的评论

嗨,大家好,
我添加了一个新的票务操作:

grafik

通过此操作,将来清理系统应该没有问题。 请谨慎使用,没有退路,非常感谢您的深度对话和支持。

更改已经在开发分支中可用。

-罗尔夫

所有28条评论

@MDXDave - 因为 Zammad 是防修订版的,所以这不是一个选项。

我理解您的反对意见,但至少管理员应该可以删除票证。

作为管理员,您可以在命令行上使用rails c命令。 从那以后,你可以去做任何 Rails 给你的可能性。 门票可以通过Ticket.find(*id*).destroy删除。 希望有帮助吗? 我们不建议这样做。

我知道这可以通过 rails 实现,但是在 Zammad 中删除票证会更容易。 :+1:

至少调度程序应该能够做到这一点。

我认为@thorsteneckel 的决定是正确的。 您应该能够在多年后审核旧票,因此至少在 UI 中不应选择删除。 对于测试 zammad(甚至是生产设置),您应该可以使用不难的 rails 控制台!

我在 OTRS 中使用此功能在我们的垃圾邮件队列中删除 30 天后的垃圾邮件票。 当然,可以从命令行执行此操作,但不像从调度程序执行此操作那样轻松。

我明白你的意思! 我们将在不久的将来实施它。 也许像https://github.com/rubysherpas/paranoia这样的东西在这种情况下很有用。

这不仅是关于隐藏票证,也是关于从数据库中删除不必要的东西。 目前我们的垃圾邮件与火腿邮件的比率相当高,但我们检测到大部分邮件都带有 spamassassin。 然而,电子邮件过滤发生在从 POP3 下载邮件之后,因此票证已经创建,数据库和磁盘空间已分配(说到 OTRS)
一种解决方案可能是存储对票证的引用,并用票证已删除的信息替换内容。 因此,在审计的情况下,您可以证明该票证已创建,但不再存在?

是否有任何有关如何进入和使用 rails 控制台的文档?

我目前正在测试很多,我想摆脱所有“Test1”、“Test2”、“Test3”等门票;-)

是否有任何有关如何进入和使用 rails 控制台的文档?

外壳> 导轨 c
rails> Ticket.destroy_all

如果您使用 Zammad RPM,则需要执行以下操作:
shell> zammad run rails c
rails> Ticket.destroy_all

谢谢,就像一个魅力!

如果您正在寻找一种删除所有票证的方法,但有些您可以使用此方法:

tickets_to_keep = [1, 2, 3] # enter the ids of all tickets you want to keep
(Ticket.all.pluck(:id) - tickets_to_keep).each { |id| Ticket.find(id).destroy }

这将删除ID 123以外的所有票

还是没有这方面的消息? 😐

嗨,大家好,
我添加了一个新的票务操作:

grafik

通过此操作,将来清理系统应该没有问题。 请谨慎使用,没有退路,非常感谢您的深度对话和支持。

更改已经在开发分支中可用。

-罗尔夫

你好,

我尝试使用“删除”操作,因此创建了一个宏来使用它。 可悲的是,它对票没有任何作用,只会在日志中引起大量活动(见下文)。

我正在使用当前开发的 Debian 包 1.6.1-1502058507.b2ece283.jessie

当我为一张票(在本例中为 Id 2394)选择删除宏时,来自日志文件的消息就像附件一样:

I, [2017-08-07T11:29:50.916731 #20037]  INFO -- : Started PUT "/api/v1/tickets/2934?all=true" for 134.99.182.24 at 2017-08-07 11:29:50 +0200
I, [2017-08-07T11:29:50.928520 #20037]  INFO -- : Processing by TicketsController#update as JSON
I, [2017-08-07T11:29:50.928785 #20037]  INFO -- :   Parameters: {"number"=>"201708077203221", "title"=>"Verzoegerte Mail / Delayed Mail (still being retried)", "group_id"=>"1", "owner_id"=>"9", "customer_id"=>2339, "state_id"=>"4", "priority_id"=>"2", "updated_at"=>"2017-08-07T09:22:04.377Z", "pending_time"=>nil, "id"=>"2934", "all"=>"true", "ticket"=>{"id"=>"2934", "group_id"=>"1", "priority_id"=>"2", "state_id"=>"4", "number"=>"201708077203221", "title"=>"Verzoegerte Mail / Delayed Mail (still being retried)", "owner_id"=>"9", "customer_id"=>2339, "pending_time"=>nil, "updated_at"=>"2017-08-07T09:22:04.377Z"}}
I, [2017-08-07T11:29:51.241498 #20037]  INFO -- : Completed 200 OK in 313ms (Views: 9.1ms | ActiveRecord: 33.0ms)
I, [2017-08-07T11:29:51.263816 #20037]  INFO -- : Started DELETE "/api/v1/ticket_attachment_upload" for 134.99.182.24 at 2017-08-07 11:29:51 +0200
I, [2017-08-07T11:29:51.267849 #20037]  INFO -- : Processing by TicketArticlesController#ticket_attachment_upload_delete as JSON
I, [2017-08-07T11:29:51.267922 #20037]  INFO -- :   Parameters: {"form_id"=>"097621992", "ticket_article"=>{"form_id"=>"097621992"}}
I, [2017-08-07T11:29:51.287497 #20037]  INFO -- : Completed 200 OK in 19ms (Views: 0.3ms | ActiveRecord: 3.5ms)
I, [2017-08-07T11:29:51.817125 #20039]  INFO -- : 2017-08-07T11:29:51+0200: [Worker(host:zammad pid:20039)] Job Observer::UserDeviceLogJob (id=15352) RUNNING
I, [2017-08-07T11:29:51.839587 #20039]  INFO -- : 2017-08-07T11:29:51+0200: [Worker(host:zammad pid:20039)] Job Observer::UserDeviceLogJob (id=15352) COMPLETED after 0.0222
I, [2017-08-07T11:29:51.844069 #20039]  INFO -- : 2017-08-07T11:29:51+0200: [Worker(host:zammad pid:20039)] Job Observer::Ticket::UserTicketCounter::BackgroundJob (id=15353) RUNNING
I, [2017-08-07T11:29:51.853673 #20039]  INFO -- : 2017-08-07T11:29:51+0200: [Worker(host:zammad pid:20039)] Job Observer::Ticket::UserTicketCounter::BackgroundJob (id=15353) COMPLETED after 0.0093
I, [2017-08-07T11:29:52.067159 #20037]  INFO -- : Started GET "/api/v1/users/2339?full=true&_=1502091684037" for 134.99.182.24 at 2017-08-07 11:29:52 +0200
I, [2017-08-07T11:29:52.074838 #20037]  INFO -- : Processing by UsersController#show as JSON
I, [2017-08-07T11:29:52.074990 #20037]  INFO -- :   Parameters: {"full"=>"true", "_"=>"1502091684037", "id"=>"2339", "user"=>{}}
I, [2017-08-07T11:29:52.124370 #20037]  INFO -- : Completed 200 OK in 49ms (Views: 9.2ms | ActiveRecord: 5.2ms)
I, [2017-08-07T11:29:52.162360 #20037]  INFO -- : Started GET "/api/v1/ticket_customer?customer_id=2339&_=1502091684038" for 134.99.182.24 at 2017-08-07 11:29:52 +0200
I, [2017-08-07T11:29:52.171857 #20037]  INFO -- : Processing by TicketsController#ticket_customer as JSON
I, [2017-08-07T11:29:52.172077 #20037]  INFO -- :   Parameters: {"customer_id"=>"2339", "_"=>"1502091684038", "ticket"=>{}}
I, [2017-08-07T11:29:52.269458 #20037]  INFO -- : Completed 200 OK in 97ms (Views: 30.2ms | ActiveRecord: 4.1ms)
I, [2017-08-07T11:29:53.149049 #20037]  INFO -- : Started GET "/api/v1/users/2339?full=true&_=1502087532475" for 134.99.182.76 at 2017-08-07 11:29:53 +0200
I, [2017-08-07T11:29:53.158434 #20037]  INFO -- : Processing by UsersController#show as JSON
I, [2017-08-07T11:29:53.158857 #20037]  INFO -- :   Parameters: {"full"=>"true", "_"=>"1502087532475", "id"=>"2339", "user"=>{}}
I, [2017-08-07T11:29:53.227291 #20037]  INFO -- : Completed 200 OK in 68ms (Views: 13.2ms | ActiveRecord: 3.8ms)
I, [2017-08-07T11:29:53.424242 #20037]  INFO -- : Started PUT "/api/v1/taskbar/74" for 134.99.182.24 at 2017-08-07 11:29:53 +0200
I, [2017-08-07T11:29:53.434444 #20037]  INFO -- : Processing by TaskbarController#update as JSON
I, [2017-08-07T11:29:53.434747 #20037]  INFO -- :   Parameters: {"key"=>"Ticket-2934", "client_id"=>"123", "callback"=>"TicketZoom", "state"=>{"ticket"=>{}, "article"=>{}}, "params"=>{"ticket_id"=>2934, "overview_id"=>2, "shown"=>true}, "prio"=>16, "notify"=>false, "active"=>true, "updated_at"=>"2017-08-07T09:19:33.085Z", "id"=>"74", "taskbar"=>{"id"=>"74", "client_id"=>"123", "key"=>"Ticket-2934", "callback"=>"TicketZoom", "state"=>{"ticket"=>{}, "article"=>{}}, "params"=>{"ticket_id"=>2934, "overview_id"=>2, "shown"=>true}, "prio"=>16, "notify"=>false, "active"=>true, "updated_at"=>"2017-08-07T09:19:33.085Z"}}
I, [2017-08-07T11:29:53.500058 #20037]  INFO -- : Completed 200 OK in 65ms (Views: 1.4ms | ActiveRecord: 3.2ms)
I, [2017-08-07T11:29:54.323682 #20037]  INFO -- : Started GET "/api/v1/ticket_overviews?_=1502091684039" for 134.99.182.24 at 2017-08-07 11:29:54 +0200
I, [2017-08-07T11:29:54.324343 #20037]  INFO -- : Started GET "/api/v1/ticket_overviews?view=all_unassigned&_=1502091684040" for 134.99.182.24 at 2017-08-07 11:29:54 +0200
I, [2017-08-07T11:29:54.331526 #20037]  INFO -- : Processing by TicketOverviewsController#show as JSON
I, [2017-08-07T11:29:54.336974 #20037]  INFO -- : Processing by TicketOverviewsController#show as JSON
I, [2017-08-07T11:29:54.337380 #20037]  INFO -- :   Parameters: {"view"=>"all_unassigned", "_"=>"1502091684040", "ticket_overview"=>{}}
I, [2017-08-07T11:29:54.337205 #20037]  INFO -- :   Parameters: {"_"=>"1502091684039", "ticket_overview"=>{}}
I, [2017-08-07T11:29:54.519933 #20037]  INFO -- : Completed 200 OK in 181ms (Views: 0.8ms | ActiveRecord: 78.1ms)

@rolfschmidt您的删除操作是否已在最新的官方 Zammad2 中可用? 我找不到。
我正在使用:

# apt policy zammad
zammad:
  Installed: 2.1.0-1509936117.b8f98730.xenial
  Candidate: 2.1.0-1509936117.b8f98730.xenial
  Version table:
 *** 2.1.0-1509936117.b8f98730.xenial 500
        500 https://dl.packager.io/srv/deb/zammad/zammad/stable/ubuntu 16.04/main amd64 Packages
        100 /var/lib/dpkg/status

大家好,

@strangechoice :是的,这是一个错误。 删除操作将仅在调度程序中受支持。 我们从宏中删除了操作。

@passboltUser :请看一下调度程序。

grafik

此致,
罗尔夫

@rolfschmidt谢谢。 不幸的是,我无法运行它,看不到New Scheduler 。 我在/#manage/time_accounting之下。

zammad

你好@passboltUser
我想你只是错过了。

  • 单击菜单调度程序
  • 然后在新调度程序的右上角
  • 您可以在下方选择应删除票证的时间。
  • 您可以在下方选择删除门票的条件
  • 下面您会看到一些将被删除的示例票证
  • 您可以在下方看到您可以对门票执行的操作。 在这里您可以选择操作 -> 删除

grafik

此致,


你好@passboltUser
我想你只是犯了一个错误。

  • 点击自动化
  • 然后点击右上角的New Timed Action
  • 然后你先选择什么时候票会一直被删除
  • 包括工单必须收到才能被删除的条件
  • 您可以在下方看到随后将被删除的门票列表的一部分。
  • 在下方,您可以看到应在票证上执行的操作。 在这里你选择然后
    操作 -> 删除

grafik

问候

@rolfschmidt谢谢,我找到了。 如何删除所有特定票证? 你也可以删除个别的吗? 我们已经关闭了用Tutorial标签标记的工单,以查看问题是如何解决的(然后这些工单可以像几乎所有教程一样显示在自定义视图中)。

添加 eng :谢谢,找到了。 但是这样所有的票都被删除了怎么办? 可以删除个别的吗? 我们已经关闭了标记为“教程”的票证,以便稍后查找问题是如何解决的(这些票证可以在自创建的视图中很好地显示)。

@passboltUser
如果你选择正确的条件,它应该。

对不起,伙计们,我在上一篇文章中添加了英文翻译。 我们应该在问题跟踪器上写英文。

好的,谢谢,我试试 (还增加了英文翻译)

谢谢,它有效👍我添加了第二个条件,我通过包含标签“垃圾邮件”的票进行过滤(因此必须将标签“垃圾邮件”添加到此类票中)。

首先,我很高兴能够删除创建循环的票证 - 例如发送到错误电子邮件地址的技术票证,并且 NDR 在我们尝试关闭票证时不断返回,因为有关闭通知......

我们面临的问题是有一批 30 个不同编号的票,这些票有循环或我们想要删除的其他问题,而时间表方式是一种了解什么是耐心的方法……每 5 分钟手动输入一个票号。 .

我的 2c 是应该有一个仅限管理员的、受密码保护的表单来直接在 Web 界面上删除票证。

我想我已经找到了一个很好的解决方案,其中包含 Zammad 必须提供的伟大天才工具,但由于某种原因它不起作用:)
我在设置的“系统”部分使用“对象”为工单创建了一个新的文本字段,将其称为“由管理员删除”和默认文本:“请输入代码”。
更新数据库并重新启动 Zammad。
现在我有了这个新字段,我可以通过它来安排删除,所以我去调度程序并创建了一个新的时间表,条件是“要由管理员删除”字段必须包含例如:“现在删除我!” .

现在我要做的就是找到我要删除的票证,然后在我创建的新字段中输入此文本字符串。

image

问题是它不起作用(不删除票):)

无需等待调度计时器即可完成删除许多票证的另一种选择是为调度程序设置一个“立即运行”按钮:)

@DjMagicFingers
我添加了一个名为“to_be_deleted_by_admin”的对象作为输入字段,并设置了一些值为“请删除我”的票证。 之后我添加了一个调度程序作业来删除它们。 为我工作。 看起来您没有在票证中正确填写值,否则它们会显示在您粘贴的屏幕截图的预览中。 你能再检查一下吗? 您使用的是哪个版本的 zammad?

此致,
罗尔夫

这已经是 Zammad 的一部分,并已通过以下方式解决: https :

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