本文说明 edifact_summary.py 从 EDIFACT 文本到摘要输出的完整处理路径。
parse_edifact(document) 把原始报文解析为结构化对象(interchange/group/transaction/segment)。build_summary(parsed) 对解析结果进行业务摘要提取。build_summary 的遍历层级:
interchangesfunctional_groupstransaction_sets对每个 transaction:
summarize_transaction(transaction) 生成单消息摘要。messages 列表。最终输出结构:
interchange_count: 互换组数量messages: 每条业务消息的摘要单消息提取按以下顺序进行:
BGM:
document.codedocument.numberdocument.function_codeextract_dates:读取 DTMextract_references:读取 RFFextract_parties:读取 NADextract_currency:读取 CUXextract_line_items 以 LIN 为锚点聚合关联的 PIA/QTY/PRIline_items 与 line_item_countestimated_total:
qty * price 后累加safe_value(segment, element_index):按元素序号安全读取标量值。safe_components(segment, element_index):读取复合元素组件值数组。qualifier_name(...):限定符名称优先使用内置映射,缺失时回退到 parser 语义元数据。pick_measure(entries, preferred_qualifiers):从候选列表中按优先限定符选择最合适值。edifact_summary.py 支持两种输出:
--json:输出机器可读 JSON。render_summary_table 生成 ASCII 表格,按消息分块展示。python3 edifact_summary.py sample-orders.edifact -o sample-orders.summary.txt python3 edifact_summary.py sample-orders.edifact --json -o sample-orders.summary.json