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

Sabre API开发中AddRemarksRQ、EndTransactionRQ的PNR相关技术问询

Sabre 会话类API的关联逻辑与前置条件说明

疑问1:AddRemarksRQ、EndTransactionRQ 未携带PNR字段时,如何匹配目标操作的PNR

这是由Sabre会话模型的有状态绑定机制决定的,核心逻辑是:

  • Sabre为每个通过CreateSessionRQ创建的独立会话,分配一块专属的内存工作区(Work Area),所有同会话下的API请求,后端都会自动从这块工作区里读取当前绑定的操作对象,不需要请求报文重复传递目标标识。
  • 你之前调用GetReservationRQ传入PNR定位符查询预订详情的动作,本身就完成了"将目标PNR全量加载到当前会话工作区"的步骤——此时这块工作区已经和目标PNR完成了上下文绑定,后续同会话下发起的AddRemarksRQ、EndTransactionRQ请求,不需要重复携带PNR定位符,后端会自动从工作区上下文读取已绑定的PNR完成操作。
  • 额外注意操作边界:同一会话的工作区同一时间只会绑定最后一次加载的PNR,如果你在会话中途连续查询/加载了多个不同的PNR,后续的修改操作默认会作用在最后一次加载的记录上,不会回溯之前的目标PNR。

疑问2:EndTransactionRQ 前置条件"工作区中存在至少包含1个行程段的PNR"的具体含义

这个前置条件是对当前会话工作区状态的两层校验,拆解后非常明确:

  1. 第一层校验:当前会话的工作区不能处于完全空白的状态
    刚创建完会话、还没有加载任何已有PNR、也没有生成草稿PNR的空工作区状态下,直接调用EndTransactionRQ会因为找不到可提交的操作对象直接返回报错。
  2. 第二层校验:工作区中加载的PNR必须具备合法的最小结构
    Sabre体系内,一个可被提交固化的有效PNR,必须包含至少1个可识别的行程段(航段、酒店段、租车段均可);如果工作区里加载的是空壳草稿PNR——比如只录入了联系人姓名、联系方式,没有添加任何行程内容,哪怕记录已经在工作区里,也不满足校验要求。
    本质上这个规则匹配的是EndTransactionRQ的核心功能:这个API的作用是将你在工作区里对PNR做的所有临时修改(添加备注、更新联系方式、添加特殊服务请求等)正式固化为Sabre系统中的正式PNR内容,系统不会允许没有基础行程结构的空记录被提交为正式PNR。

注:只要你是通过GetReservationRQ加载的、已经在Sabre系统中存在的正式PNR,本身天然就满足"包含至少1个行程段"的要求,不需要额外为了调用EndTransactionRQ做额外的结构补充。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 16:24:07