简介:面向航空公司运营人员与票务操作员的ETERM指令培训文档,系统梳理航班查询、座位预订、PNR生成与出票等核心操作。内容详解AV、SD、NM、TKTL、@封口、RT提取、XEPNR取消、DETR电子客票提取等高频指令,并演示记录分离(SP)与修改还原(IG)等场景,帮助读者快速掌握指令逻辑与用法。包内为1个docx文档,压缩包大小72KB,便于打印或电子阅读。全文按实际工作流程组织,从查询、定座、生成旅客记录到出票、取消均有示例,还补充儿童票标识、航变提示及封口注意事项,适合新员工培训、上岗前自学或作为日常操作速查手册。目前已有664人次学习,是进入民航票务岗位前快速熟悉ETERM命令的有效资料。
1. ETERM指令培训到底在教什么:黑屏终端背后的民航票务基本功
ETERM指令培训,说白了就是教人怎么在一个没有图形界面、只有黑底荧光绿字的终端窗口里,完成机票查询、预订、出票、退改签这一整套民航代理人业务。很多刚入行的人第一次看到那个黑屏窗口,会以为自己在操作一台古董电脑,实际上是面对一套至今仍在全球民航分销领域占主导地位的指令系统。它看起来像上个世纪的遗产,但国内绝大多数航司官网的B2B入口、差旅平台的后台、代理人结算系统,底层对接的还是这套指令协议。
这套东西适合谁?三类人最需要。第一类是航司或代理人的新入职票务岗,必须靠它上岗;第二类是差旅管理公司的运营和技术人员,需要读懂指令日志才能排查接口问题;第三类是想转行做机票运营的人,懂ETERM几乎是进这个圈的入场券。它能解决的真实问题很具体:不依赖任何网页或App,只要有一条指令通道,就能完成比图形界面更快的批量操作——比如一次查完一周的航班余票、几十秒建好一个PNR、批量出票改期。
很多人误以为现在都是API对接了,手工指令已经淘汰。实际恰恰相反,API返回的数据大多是从ETERM后端拿的,接口不稳定时,最后兜底的一定是这套黑屏终端。不会指令,连问题出在哪都说不清。这篇文章不打算做教科书式的逐条罗列,而是按一线从业者真正会用的顺序来:先搭好环境搞懂指令语法,再把查询、订座、出票、改签这条主链路跑通,最后把那些让人翻车的细节和坑一次讲透。
2. 环境准备与登录:模拟系统、键盘习惯和第一屏指令
2.1 在本地搭一个能练指令的模拟环境
学ETERM第一道门槛不是记指令,而是找一个能安全敲指令的地方。直接连生产系统练手是绝对禁止的,每一条指令都会被记录,误操作可能就是一张真票的损失。常见的做法是使用航信或中航信提供的模拟环境(测试系统),一般由培训机构或航空公司内部申请开通账号。个人自学的话,市面上有一些第三方模拟器,但数据完整度参差不齐,我建议优先用官方培训渠道配套的模拟账号。
先看一个最小登录过程。ETERM的客户端通常是黑屏终端软件,安装后第一步是连接服务器地址,然后输入账号密码。连接成功后,第一屏大致是:
A>这就是系统提示符,A> 表示当前处于指令输入状态。此时输入DA查看系统当前日期和时间,输入HELP能列出常用指令帮助。一个标准的登录流程可以拆成三步:
# 连接远程系统(需要提前知道服务器地址和端口) # 通常客户端软件已经配好,这一步基本自动化 # 输入账号回车 U12345 # 输入密码(密码不回显) ******逻辑说明:第一行U开头的是用户标识,每个账号绑定一个Office号(即票务代理人的官方编码),这个Office号决定了你能操作哪些航司的航班。第二行的密码看不到输入状态,输错了会直接提示LOGIN FAILED。
注意:模拟环境的登录流程和真实环境一模一样,但数据是模拟的。练习时确认清楚自己登录的是IS(模拟系统)而不是PS(生产系统),这是业内最基础的一条安全红线。
2.2 键盘与屏幕:为什么光标不能乱点
ETERM终端不是图形界面,鼠标几乎派不上用场。整屏一般是24行×80列,所有交互都靠键盘和回车完成。这里有几个新手必踩的坑。第一个是回车键:很多客户端软件里,小键盘回车或主键盘回车都能提交指令,但某些定制终端里只有其中一个有效。第二个是修改已输入的指令:图形界面里按退格键能改,终端里同样支持退格,但如果你用的是某些SSH终端模拟器,键位映射不对会导致退格键变成乱码。
实际工作中我还见过更隐蔽的问题——屏幕锁定。长时间不操作,系统会自动锁屏,需要重新输入密码。但如果你的光标停留在输入框之外,敲键盘没有反应,这种假死状态其实不是系统卡了,而是焦点丢了。每个使用的终端软件都有自己的快捷键,例如某常用模拟器里是Ctrl+L清屏、Ctrl+M强制回车。换个终端软件,这些快捷键可能就变了。
屏幕底部的状态行也值得看一眼。它显示当前Office号、登录用户、当前日期时间、系统连接的信号灯状态。如果状态行的信号灯是红色的,说明与服务器的连接已经断开,此时输入任何指令都只会停留在线路上,表现为“敲了没反应、回不了A>提示符”。这种时候先别乱敲,退出重新连接比盲目重发指令更安全。
2.3 指令语法和三大反斜杠原则
ETERM的指令语法可以总结成一个简单模型:指令代码 + 必填参数 + 可选项/斜杠 + 回车。绝大多数查询指令都有固定的格式约束,斜杠是ETERM的灵魂。一次典型的航班查询:
AV HGHPEK 0509 1400这段指令代表:AV(Availability,可用航班查询),航段为HGH到PEK,日期是05月09日,时间是14点之后。
AV HGHPEK 0509去掉时间就是查询当天所有航班。加上/MU可以指定航司:
AV HGHPEK 0509/MU这里的第二道斜杠是用来区分“时间参数”和“航司过滤”的。这个规则在ETERM里无处不在。查询姓名的写法是N:张/三,姓名中间用斜杠把姓和名隔开;儿童票要加/CHD,婴儿票要加/INF后缀。
斜杠同时也带来一类高频报错。很多初学者在查询航段时把时间写错了位置,比如写成AV HGHPEK/MU 0509,系统会直接报INPUT ERROR。ETERM报错不会告诉你哪里格式错了,只会告诉你语法不对——这个“不友好”恰恰是因为系统是几十年前设计的,每一字节都有固定含义,多一个空格都可能判错。
提示:ETERM指令整体区分大小写,指令代码一般大写,参数部分有些支持小写(如姓名拼音),但最稳妥的做法是全大写加标准格式。输入邮箱这类含特殊符号的参数,还要注意全角和半角的差别,这里最常见的是中文输入法没切回来,导致冒号变成了全角字符。
3. 核心查询指令串起完整航班信息链路
3.1 AV、DS、SK:从航班号到座位图的完整查询链
ETERM里最常用的一对组合是AV先粗查、DS再细看某一班的具体座位情况,最后用SK把这个航班的两舱布局和可售座位数拉出来。这条链路的顺序是不能乱的——先确定时间合适,再确认有座位,最后看舱位代码和运价适用条件。
AV查询结果里每一行代表一个航班,从左到右是:航空公司代码、航班号、出发到达城市、出发到达时刻、机型和经停信息。一个常见的结果片段(用文字描述)大概是:
AV HGHPEK 0509 MU 5101 HGHPEK 0800 1015 330 MU 5103 HGHPEK 0900 1115 320 HU 7102 HGHPEK 1200 1410 738选出具体航班后,用DS看细节。格式是DS MU5101/HGHPEK,这个指令返回该航班的每个舱位的可售座位数。注意这里的/后面是航段,不能省略,因为同一个航班号可能执飞多个航段,比如MU5101一天里可能有两班,不指定航段系统无法判断你问的是哪一班。DS结果的每一行包含舱位代码(F/A/Y/B/M/U等),后面跟着几个数字:剩余座位数、等待人数、超售状态。这些状态直接影响你能不能通过指令直接订座,还是只能排队候补。
SK指令则更进一步,显示航班使用的飞机型号、两舱布局、每个子舱位的座位数逻辑。它主要用于判断你想要的舱位是否有票,以及能否申请升舱。
3.2 模糊查询和特价查询的姿势
业务上并不是每次都有明确的航班号,更多时候是旅客说“帮我看看明天早上从杭州到北京有什么便宜的”。这时候用AV查全列表,再用FD指令看某一天的运价,是标准操作:
FD 0509 HGHPEK Y这段指令的含义是查询05月09日杭州到北京Y舱的公布运价。想要查不同舱位,把Y替换成B/H/K/L等代码即可。FD返回的结果会告诉你这个舱位的票价级别(如Y100%即全价)、对应的子舱位代码、运价基础、是否允许签转、退改规则。这里的退改规则对后续操作影响很大——很多新手只看价格,忽略了运价基础里写着“不得退改”,等旅客真的要改期时才发现仓位规则不允许。
遇到“帮我看看怎么走最便宜”这类开放需求时,行业内常用的做法是用AV逐一城市查询,而不是依赖某种“全网比价指令”,原因是ETERM的查询维度按航司直属航班为主,代码共享航班和联运组合需要单独处理。你可以分别查HGHPEK直飞和HGHCTUPEK中转,比较运价后回复给旅客。这个过程比较耗时间,速度反而比图形界面快,因为指令不用点页面。
3.3 查询指令的常见参数组合
我把这组查询环节里高频出现的参数整理成下面这张表,方便工作时对查,也方便你在模拟环境里逐一验证:
| 指令 | 完整格式示例 | 核心参数含义 | 常见错误 |
|---|---|---|---|
| AV | AV HGHPEK 0509 1400 | 城市三字码、日期、时间过滤 | 日期写成0509和0509混淆 |
| DS | DS MU5101/HGHPEK | 航班号/航段,查看舱位座位数 | 漏写航段导致报错 |
| FD | FD 0509 HGHPEK Y | 日期、航段、舱位代码 | 舱位代码小写时不识别 |
| SK | SK MU5101/HGHPEK | 机型与布局详细信息 | 和DS结果混淆 |
| 城市码查询 | CN HZ | 城市中文查三字码 | 忘记CN是中文城市代码表,英文城市用CD查 |
这些指令的共同规律是:永远先打功能代码(AV/DS/FD/SK),然后是城市对,接着是日期和时间,最后是斜杠附加条件。一旦顺序错乱,系统就会报INPUT ERROR。理解这个顺序比背指令更可靠,因为ETERM上百条指令里,新指令层出不穷,但底层都是同一套“动作对象+时间+条件”的语法。
注意:查询结果中的时间都是当地时间,不是UTC。跨时区航段(比如HU PEKJFK)容易在这里踩坑,做旅客回程时间预判时,务必先换算时差。
4. 从订座到出票:PNR的建立、修改与航司接口
4.1 用NM、SS、CT搭出一个完整PNR的每一步
PNR是英文Passenger Name Record的缩写,是整个ETERM操作的核心对象。一个能出票的PNR至少包含房号(Office号)、旅客姓名、航段、联系信息这几块。第一步是输入姓名:
NM 1张/三含义:一位姓张名的旅客。如果同行的还有一位旅客,可以写成:
NM 2张/三李/四这里的数字2代表旅客总人数,后面每个姓名用空格分隔,姓名之间不用逗号。姓和名之间用斜杠隔开,如果是外籍旅客,比如张三的英文名,可以写NM 1ZHANG/SAN,注意两个或三个音节之间的斜杠规则。
第二步订座,使用SS指令:
SS MU5101/Y 2 HGHPEK 0509 0800这段指令是说MU5101航班Y舱2个座位,航段HGH到PEK,日期05月09日,起飞时间0800。这行指令执行成功后,系统会返回一个座位号/订座记录编号,同时生成一个PNR,现在需要补全联系人信息。联系人用CT指令:
CT 13800000000这里填入的联系电话会记录在PNR的联系人字段里。完整的PNR还需要一个OSI或RMK字段来补充备注信息,但这两个一般不用在最小出票PNR里。
最后给PNR加一个订座记录编号(也叫记录编号),系统自动生成6位字母数字组合。拿到这个编号,才能继续做支付和出票。综合起来,建一个PNR的最小指令序列是:
NM 1张/三 SS MU5101/Y 1 HGHPEK 0509 0800 CT 13800000000执行完这三条之后,用RT 记录编号就能把整个PNR调出来核对信息。
逻辑说明:NM、SS、CT三条指令的顺序可以调整吗?实测NM必须先于SS,因为SS指令里涉及乘机人数,系统需要先知道有几个人。CT可以在SS之后任意时间补,但出票前必须有。换人不等于换PNR,换PNR则必须重新组合这三条指令。这套顺序在图形化的eterm系统中同样适用,只不过页面上有输入框引导。
4.2 修改、取消和还原一个PNR:XA、XE、XI的边界
PNR建好了不代表万事大吉,旅客改主意是家常便饭。最常碰到的场景是取消某个航段,保留PNR其他信息。格式如下:
XE 3这里的数字3是被取消航段的序号。序号怎么看?用RT调出PNR后,每个航段前有一个编号,比如3代表第三段。如果想取消第3和第5段,可以写成XE 3,5。这个指令看上去简单,但坑很深。XE只能取消未出票的航段,如果已经出票了,取消航段必须走退票流程,不能强行XE,否则票号还在、航段没了,后面结算会出问题。
修改姓名则用另一套指令。假设旅客姓的拼音输错了,从ZHANG变成了ZHAN,需要重构姓名。常见做法是先XE整个PNR里面的名字字段,再重新NM,而不是试图只改一个字母。因为ETERM的姓名项在PNR中是整体存储的,不支持单字符替换:
XI 2 NM 1张/三XI指令的含义是把第2项的完整姓名项删除,紧跟着重新NM。这比某些教程里教的“用XGN改名叫法”要直观,也少出问题。
关于取消PNR,正确指令是XIRTN再加记录编号,在PNR未出票状态可以彻底清空整个PNR。这个指令要极其谨慎,因为它没有二次确认,执行后PNR里的姓名、航段、联系方式全部消失且不可恢复。很多老手操作前都会先RT看一遍PNR内容,确认这确实是要删的那个记录。
提示:如何恢复已经取消的PNR?ETERM没有真正的“撤销删除”。某些情况下管理员可以后台找回,但这个动作需要航司或中航信后台权限,且不是所有记录都留得下来。这种事没有后悔药,唯一可靠的防线是删除前RT一遍,以及把PNR内容截图或复制到本地留存。
4.3 出票指令与航司票号生成:ETF、TKNE和DETR
PNR信息核对无误后,出票操作的核心是ETF:
ETF直接输入ETF,系统会调出当前PNR内所有航段的运价、税费,生成一个待出票的界面。如果确认无误,再输入:
ETDETD是实际提交出票的动作,执行后系统生成一个13位数字的客票票号。票价、税项、航段信息一并写入票面。
有些情况下,需要指定航段出票而不是全出。这时用ETD/S1表示只出第1段,ETD/S2,3表示出第2和第3段。注意这里的斜杠后面是航段序号,不是人数。多人同时出票时还有人数维度参数ETD/P1表示只出第一个旅客的票。这两个参数可以组合使用,比如ETD/S1/P1表示给第一个旅客出第一段航程的票。
出票之后必须做核验,用DETR指令把票面内容打出来检查:
DETR:LN/票号13位比如DETR:LN/9991234567890,LN指的是以票号方式检索。返回内容里重点看三样:旅客姓名是否和证件一致、航段日期时间是否正确、运价等级是否和预订时一致。这三样任何一样有误,都要走废票重出流程,否则到了机场才发现票面错误,改起来成本极高。
4.4 航司接口报错后的定位方式:错误代码意味着什么
ETERM出票失败的报错并不友好,常见的有这么几种:
| 报错代码 | 含义 | 常见原因 |
|---|---|---|
| UNABLE TO TICKET | 无法出票 | 运价未录入、PNR缺失联系人或票价计算失败 |
| CHECK PAYMENT | 检查支付 | 支付状态未确认或支付金额不一致 |
| INVALID TICKET NUMBER | 票号无效 | 票号输错或该票号已作废 |
| SEGMENT NOT CONFIRMED | 航段未确认 | 订座未成功或已取消,需重新SS |
需要特别说明的一点:ETEEM里的这些报错不会自动给你“下一步”,只能靠人判断。支付报错时,常是因为支付接口里还挂在旧PNR上,先把旧PNR取消或把支付接口的关联选项重置,再重试。WARN级别错误通常不影响出票,但提示你某些信息缺失,比如没有录常旅客卡号或证件号。这种情况下出票后旅客权益可能受影响,务必补齐后重新出票。
注意:遇到无法出票时,有一种“万能做法”是重来一遍PNR后重新出,这确实能解决一部分偶发错误,但别拿它当默认手段。先分析报错原因再处理,不然重来十次可能还是同一个报错,反而让系统判定异常操作,影响账号权限。
5. 民航黑屏指令避坑手册:五个最容易翻车的操作细节
5.1 城市三字码的“输入正确、结果错误”
现象:有人输入AV HZGHZ 0509,系统返回的是杭州到惠州的航班,但他明明想去的是呼市到广州。
原因:城市码HGH和HET的混淆,以及HZ和CAN这类易混码。ETERM里用的是国际航协统一三字码,不是拼音缩写,很多人按拼音猜码,导致结果完全不对。更隐蔽的是部分城市三字码是历史遗留,比如杭州是HGH而不是HZ,广州是CAN而不是GZ。
解决:不记得城市码时,用CN HANGZHOU查询中文城市名,或用CD HGH查城市码对应的城市全名。养成这个习惯比死记硬背更安全。操作流程改成“先查码、后查询、再订座”,多两步但结果准确率提升明显。
5.2 日期写在指令里但忘记考虑跨天航班
现象:旅客要查询5月9日凌晨1点起飞的航班,你输入了AV HGHPEK 0509 0100,结果显示无航班。实际上航班是有的。
原因:日期参数用的是起飞日期,凌晨航班属于5月9日,但很多系统界面上显示的日期是前一天晚上的日期。不同航司对跨天航班的处理口径不同,有些系统把凌晨航班挂在出发地日期的前一天。
解决:遇到起飞时间在0点到6点之间的航班,查询时把日期参数往前推一天试,用AV HGHPEK 0508 2330这类方式把“前一天晚上”也覆盖进去。同时做旅客行程单时,把起飞日期写成旅客所在地的当地日期,不要自己换算时差。
5.3 用XE取消一个航段后,同一PNR里出票张数漏算
现象:PNR里两个人四段航程,某天旅客说第二段不飞了,你执行了XE 2,后面出票时只出一张票,系统提示另一个人没有对应的航段。
原因:XE按序号取消的是整个航段的分配,如果该航段关联了所有旅客,执行后这一段的两位旅客都会被移除。部分系统的XE支持按人数参数XE/2或按座位号XE 2/张三,但默认是全取消。
解决:多人同行取消某段行程时,先RT看PNR里的分割情况,确认同一段是整体绑定还是按人分开的。如果按人分开,用XE 2/张三定向移除;如果整体绑定,需要先SP把PNR按旅客分拆(Split),再各自取消。这个动作要在出票前做,票出了再分拆麻烦得多。
5.4 换名字时用了XGN却没能同步航段
现象:学习了某个教程说换名字用XGN指令,执行后PNR里姓名变了,但航段上显示的旅客姓名还是旧名。
原因:XGN在全PNR重构支持上有版本差异,部分环境对XGN的处理不完整,只改了姓名列表但没改航段旅客关联字段。这个字段在票面显示上会体现出来,导致旅客到机场后姓名对不上。
解决:换名字稳妥的做法是先XI删除姓名项,再重新NM,然后RT检查整个PNR所有字段。如果发现航段上的人名没有同步,再执行一次SS重订这个航段,保证关联一致。宁可多花两分钟重新做一遍,也别留下这种对不上的隐患。
5.5 出票后改签没走“客票变更”流程,直接取消了原PNR
现象:旅客说要改签到明天,你直接用XE取消了原航段,结果客票显示“废弃”状态,新航班又无法关联原票号。
原因:一旦出票,票号和PNR是绑定的,不能用PNR的取消指令去替代客票变更。正确流程应该走客票改期(如ETKE或由航司指令完成换开新票),而不是取消原PNR。
解决:出票后任何变动,先辨别是“同舱位同日期改时刻”还是“跨舱位跨日期换开”。同舱改时间一般用航司换开指令完成;跨舱位必须回收原票、重新计算运价。具体指令格式可以查询自己所在航司的后台手册,但原则是不碰原PNR,用换开指令生成新票。
6. 进阶技巧:指令脚本化、缓存数据判断和模拟环境的价值上限
老手和新手的差距主要在三件事。第一件事是批处理。ETERM客户端大多支持发送多行指令,比如用记事本写好一连串查询或建PNR的指令,复制后一次性粘贴进终端,每条指令自动回车执行。这样做批量查询时效率会高出很多,但要注意指令之间的间隔。系统处理每条指令需要时间,粘贴太快可能导致后一条指令在前一条还没返回结果时就执行,产生连环报错。实际操作时,每条指令后面加一行空行作为缓冲,速度就刚刚好。这个技巧适合处理几十个航段的余位查询,不适合做PNR批量创建——因为每个PNR的记录编号都是动态生成的,后者还是得靠脚本控制流程。
第二件事是学会判断缓存数据。ETERM返回的航班数据不是实时状态,查询结果有且仅代表“查询那一刻”的情况。特别是AV和DS显示的座位数,在你拿到座位数到实际SS的这几十秒里,那个座位可能已经被别人占了。SS报UNABLE TO BOOK时,不要纠结为什么刚才还有座,直接改订其他舱位或让旅客考虑其他航班。更新后的DS才能反映最新情况。不必质疑自己查询姿势有问题,这个情况本身是指令系统的正常特征。
第三件事是模拟环境的真实价值边界。模拟环境能帮你把“指令格式”练熟,但练不出“业务判断力”。真实业务里旅客的行程可能是多段联程、不同航司混搭、有特殊旅客(无人陪伴儿童、担架旅客),这些复杂场景在模拟系统里大多没有对应数据。模拟系统通常只覆盖国内主流航司的基础舱位。所以我的建议是:模拟环境用来练到“拿到一段旅客需求,能在三分钟内完成查询到出票的完整操作”;复杂业务规则靠读航司业务手册补齐,而不是靠模拟系统里试错。
有个我在带人时反复强调的检查习惯值得分享。每次出票前,按这个顺序看一遍PNR:
RT 记录编号然后依次核对:旅客姓名的拼音是否完全一致、航段日期和航班号是否和旅客确认过的一致、舱位代码对应的运价条件是否满足旅客的退改需求、联系人和证件信息是否已补全。这个检查习惯花不到一分钟,但能挡掉大多数售后麻烦。带过的学员里,养成了这习惯的,上岗后几乎没出过废票事故;没养成习惯的,几乎都在前三个月里经历过一次惨痛教训——有个A同学直接把旅客姓名中间的斜杠写错,直到柜台值机才发现,最后是代理人掏钱重新出票才把旅客送上飞机。
ETERM值得学吗?答案是值得,而且它的复用周期远比很多“最新技术”长。这套系统的核心概念——PNR结构、舱位代码、运价基础、票号规则——是你理解民航分销领域后续一切业务的地基。国内很多旅游平台、差旅系统的数据逻辑,底层仍然映照着这套指令的规则。把指令本身当成一种工具语言去掌握,吃透的不是那几十条命令,而是这个行业处理机票业务的标准思维方式。
希望这篇笔记能帮你在黑屏终端前少走一些弯路。指令这种东西,练到肌肉记忆就不难了,但业务上的警觉性,得从一开始就刻意养成。
本文还有配套的精品资源,点击获取