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

GLPI 10 REST API创建工单时预设日期字段失效问题

GLPI 10 REST API创建工单自定义日期字段被覆盖问题

问题原因

这是GLPI 10版本的正式逻辑变更,不是接口bug:

  • GLPI 9版本没有对ITIL类对象(工单、问题、变更)的日期字段做写入限制,API传入的日期值可以直接写入数据库
  • GLPI 10新增了ITIL对象日期自动计算逻辑,普通请求下date_creation、solvedate、closedate、date_mod这类字段都属于受保护的自动填充字段,创建时会优先取date参数值,没传date就取当前请求时间覆盖所有自定义传入的日期值,避免非合规的日期数据写入。

解决方案

方案1:传参时加跳过校验标识(推荐,无需修改系统配置)

在请求的input结构中新增_skip_ticket_date_auto_calc参数,值设为true即可绕过自动日期覆盖逻辑,系统会原样保留你传入的所有日期字段值。
注意同步匹配工单状态,否则日期会被状态流转逻辑重置:

  • 传入solvedate时,status字段需设为已解决状态对应的ID(默认为5)
  • 传入closedate时,status字段需设为已关闭状态对应的ID(默认为6)

修正后的请求参数示例:

{
  "input": {
    "_users_id_requester": 12,
    "_skip_ticket_date_auto_calc": true,
    "_no_rule_matches": true,
    "date_creation": "2022-05-11 08:01:20",
    "closedate": "2022-05-12 08:03:09",
    "solvedate": "2022-05-13 08:03:09",
    "date_mod": "2022-05-14 08:03:09",
    "date": "2022-05-17 08:01:20",
    "content": "Ticket test GLPI10 pbm date",
    "users_id": 12,
    "itilcategories_id": 25,
    "name": "Test de pre set date",
    "type": 1,
    "status": 6
  }
}

额外加的_no_rule_matches参数可以同步跳过系统业务规则匹配,避免迁移过程中规则自动修改工单字段,适合存量数据批量迁移场景。

方案2:全局开启历史日期写入权限

如果当前GLPI 10是早期小版本(10.0.0~10.0.3),上述参数不生效的话,可以通过后台配置放开限制:

  • 登录GLPI后台,进入设置 > 系统 > 接口配置
  • 找到允许API写入ITIL对象历史日期选项,设置为启用
  • 存量数据迁移完成后建议关闭该选项,避免日常使用中出现非法日期数据

注意事项

  • 所有传入的日期必须严格遵循Y-m-d H:i:s格式,不要带时区标识、毫秒后缀,否则会被识别为无效日期自动替换为当前时间
  • 用于调用API的账号需要拥有工单的创建/编辑权限,否则受保护字段依然无法正常写入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:18:48