出站 EDI 消息数据的存储方式
BizTalk Server执行以下操作来生成出站交换的状态报告条目:
当出站消息 XML 发送到 EDI 发送管道时,发送管道会在状态报告数据存储中创建具有以下值的条目:
交换状态条目设置为“已处理”
交换 ACK 状态条目 (每个交换) 设置为“预期”
功能 ACK 状态条目 (X12 中每个组一个,EDIFACT) 中的所有组各一个条目设置为“预期”
在向贸易合作伙伴发送 EDI 消息并从贸易合作伙伴返回确认后,接收确认的 EDI 接收管道会根据需要将交换状态、交换 ACK 状态和功能 ACK 状态条目更新为“已接受/部分接受/拒绝”。
出站交换的发送管道存储的数据
发送管道在状态报告数据存储中为其发送的每个交换创建一条记录。 条目所需的大多数数据可从交换标头/尾部段 (ISA/IEA 或 UNB/UNZ) 获得。 其他数据可从发送端口属性获取。 存储的数据包括:
记录类型 = 交换状态
交换方向 = 更新数据 = 发送
交换接收器 = 更新数据
交换发送方 = 更新数据
交换日期 = 更新数据
交换时间 = 更新数据
交换控制 ID = 更新数据
交换状态:已处理/已发送。 状态为“已处理”表示发送管道已成功处理交换并将其移交给发送适配器进行传递。
X12 中 (组/消息的交换控制计数分别) = 数据
交换发送端口 ID = 数据
在响应出站交换时收到的每个技术确认的接收管道存储的数据
接收管道在状态报告数据存储区中为其接收的每个技术确认创建一条记录。 接收管道创建状态报告数据存储区中收到的每个交换的记录。 在数据存储区中为每个技术确认创建一个技术确认状态报告条目,作为对发送给贸易合作伙伴的交换的响应。 技术确认是适用于 X12 的 TA1 和仅包含 EDIFACT 的 UCI 段的 CONTRL 消息。 存储的数据包括:
记录类型 = 交换确认状态
交换 ACK 方向 = 发送 - 更新数据
交换接收方 = 关联) 所需的更新数据 (
交换发送方 = 更新关联) 所需的数据 (
交换日期 = X12 相关) 所需的更新数据 (
交换控制 ID = 更新关联) 所需的数据 (
交换 ACK 状态 = 已生成或不适用 <,请参阅说明 0> - 更新数据
交换 ACK 控制 ID= 未值 - 将由发送端应用
交换确认日期 = 未值 - 将由发送端应用
交换 ACK 时间 = 未值 - 将由发送端应用
ACK/操作代码 = 更新数据 <请参阅注释 1> (X12-TA104 或 EDIFACT-UCI4) *
ACK 注释代码 = 更新数据 <请参阅注释 2> (X12-TA105,不适用于 EDIFACT) *
使用以下 ACK/操作代码:
ACK/操作代码中的数据 | 报告的错误说明 | 注释 (适用性) |
---|---|---|
A | 已接受 | X12 |
E | 接受,已记录错误 | X12 |
P | 部分接受 | X12 |
R | 已拒绝 | X12 |
4 | 已拒绝 | EDIFACT |
8 | 接受/部分接受 | EDIFACT |
使用以下 ACK 注释代码:
X12) 中的 ACK 注释代码 ( | 说明 |
---|---|
000 | 成功 |
001 | 交换控制编号不匹配 |
002 | 不支持标准 |
003 | 不支持的控件的版本 |
004 | 段终止符无效 |
005 | 发送方的交换 ID 限定符无效 |
006 | 交换发送方 ID 无效 |
007 | 接收方的交换 ID 限定符无效 |
008 | 交换接收方 ID 无效 |
009 | 未知交换接收方 ID |
010 | 授权信息限定符值无效 |
011 | 授权信息值无效 |
012 | 安全信息限定符值无效 |
013 | 无效的安全信息值 |
014 | 交换日期值无效 |
015 | 交换时间值无效 |
016 | 交换标准标识符值无效 |
017 | 交换版本 ID 值无效 |
018 | 交换控制编号值无效 |
019 | 请求的确认值无效 |
020 | 测试指示器值无效 |
021 | 包含的组值数无效 |
022 | 控制结构无效 |
023 | 不正确的文件结尾 |
024 | 交换内容无效 |
025 | 交换控制编号重复 |
026 | 数据元素分隔符无效 |
027 | 组件元素分隔符无效 |
028 | 延迟送达请求中的送达日期无效 |
029 | 延迟送达请求中的送达时间无效 |
030 | 延迟送达请求中的送达时间代码无效 |
031 | 服务的级别无效 |
接收管道为响应出站交换而接收的每个技术确认更新的数据
对于接收管道接收的每个技术确认,它会更新相关已发送交换的状态报告条目。
EDI 反汇编程序使用传入确认的 UCI 和 TA1 段中的数据查找数据存储中的记录,如下所示:
ACK 中的字段 | 数据存储中的字段 | 评论 |
---|---|---|
交换发送方 ID | 交换收件人 | - |
交换接收方 ID | 交换发送方 | - |
- | 交换日期 | - |
交换控制编号 | 交换控制 ID | - |
- | 交换方向 = 发送 | 保留的批处理方案中的唯一性是必需的 |
记录类型 | 交换状态和交换 ACK 状态 | - |
存储的数据包括:
交换 ACK 方向 = 接收 - 现有数据
交换 ACK 状态 = 已接收
交换接收器 = 现有数据
交换发送方 = 现有数据
交换日期 = 现有数据
交换控件 ID = 现有数据
交换 ACK 控制 ID = 更新数据
交换 ACK 日期 = 更新数据
交换 ACK 时间 = 更新数据
ACK/操作代码 = 更新 X12-TA104 或 EDIFACT-UCI4) 中的数据 (* <请参阅注释 1>
ACK 注释代码 2 = 更新 X12-TA105 中的数据 (,对于 EDIFACT) 不值* <请参阅注释 2>
ACK X12:TA1-104 或 EDIFACT UCI4 中的数据将映射如下:
ACK/操作代码中的数据 | 针对状态报告映射 | 评论 |
---|---|---|
A | 已接受 | X12 |
P | 部分接受 | X12 |
R、M、W、X | 已拒绝 | X12 |
E | 接受并出现错误 | X12 |
4 | 已拒绝 | EDIFACT |
7, 8 | 接受/部分接受 | EDIFACT |
使用以下 ACK 注释代码:
X12) 中的 ACK 说明代码 (中的数据 | 针对状态报告映射 |
---|---|
000 | 成功 |
001 | 交换控制编号不匹配 |
002 | 不支持标准 |
003 | 不支持的控件的版本 |
004 | 段终止符无效 |
005 | 发送方的交换 ID 限定符无效 |
006 | 交换发送方 ID 无效 |
007 | 接收方的交换 ID 限定符无效 |
008 | 交换接收方 ID 无效 |
009 | 未知交换接收方 ID |
010 | 授权信息限定符值无效 |
011 | 授权信息值无效 |
012 | 安全信息限定符值无效 |
013 | 无效的安全信息值 |
014 | 交换日期值无效 |
015 | 交换时间值无效 |
016 | 交换标准标识符值无效 |
017 | 交换版本 ID 值无效 |
018 | 交换控制编号值无效 |
019 | 无效的确认请求值 |
020 | 测试指示器值无效 |
021 | 包含的组值的数目无效 |
022 | 控制结构无效 |
023 | 不正确的文件结尾 |
024 | 交换内容无效 |
025 | 交换控制编号重复 |
026 | 数据元素分隔符无效 |
027 | 组件元素分隔符无效 |
028 | 延迟送达请求中的送达日期无效 |
029 | 延迟送达请求中的送达时间无效 |
030 | 延迟送达请求中的送达时间代码无效 |
031 | 服务的级别无效 |
接收管道为响应出站交换而接收的每个功能确认存储的数据
接收管道在状态报告数据存储区中为其接收的每个功能确认创建一条记录。 技术确认是 X12 的 997 和 EDIFACT 的完整 CONTRL 消息。 将为每个组创建一个条目。 创建此条目时,将使用交换和组标头中的数据。 存储的数据包括:
记录类型 = 功能确认状态
功能 ACK 方向 = 发送
功能 ACK 状态 = <已生成或不适用,请参阅注释 1>
交换接收方 = 关联) 所需的更新数据 (
交换发送方 = 更新关联) 所需的数据 (
交换日期 = X12 相关) 所需的更新数据 (
交换控制 ID = 更新关联) 所需的数据 (
组控制编号 = 更新数据 (“EDIFACT 可选”,X12 关联)
功能 ID 代码 = 更新数据 (GS01/UNG01)
事务集计数 = 更新数据 (UNE1/UNZ1)
功能 ACK 交换控制 ID= Not value - 将由发送端应用
功能 ACK 交换日期 = 未值 - 将由发送端应用
功能 ACK 交换时间 = 未值 - 将由发送端应用
接收的事务集计数 = 更新数据 (X12-AK903,由引擎计算,用于 EDIFACT 编码)
接受的事务集计数 = 更新数据 (X12-AK904 并由引擎计算的 EDIFACT 引擎)
ACK/操作代码 = 更新数据 <,请参阅注释 2> (X12-AK901 或 EDIFACT-UCI4) *
错误/语法 错误代码 = 更新数据 (X12-AK905,EDIFACT UCI5) 注释 3
其他 X12 ACK 错误代码 2 = 更新数据 (X12-AK906)
其他 X12 ACK 错误代码 3 = 更新数据 (X12-AK907)
其他 X12 ACK 错误代码 4 = 更新数据 (X12-AK908)
其他 X12 ACK 错误代码 5 = 更新数据 (X12-AK909)
将使用以下 ACK/操作代码:
ACK/操作代码中的数据 | 报告的错误说明 | 注释 (适用性) |
---|---|---|
A | 已接受 | X12 |
E | 接受但出现错误 | X12 |
P | 部分接受 | X12 |
R | 已拒绝 | X12 |
4 | 已拒绝 | EDIFACT |
7 | 接受/部分接受 | EDIFACT |
以下错误/语法错误代码将用于 EDIFACT:
错误/语法错误代码 适用于 EDIFACT) 的 ( |
报告的错误说明 |
---|---|
2 | 不支持语法版本或级别 |
7 | 交换收件人不是实际的收件人 |
12 | 值无效 |
13 | Missing |
14 | 在此位置不支持该值 |
15 | 在此位置不支持 |
16 | 组分过多 |
17 | 无协议 |
18 | 未指定的错误 |
19 | 十进制符号无效 |
20 | 字符在作为服务字符时无效 |
21 | 无效字符 |
22 | 无效服务字符 |
23 | 未知交换发件人 |
24 | 太旧 |
25 | 不支持测试指示器 |
26 | 检测到重复内容 |
27 | 不支持安全功能 |
28 | 参考不匹配 |
29 | 控制数与接收到的实例数不匹配 |
30 | 组和消息/包混合 |
31 | 在组中有一种以上的消息类型 |
32 | 低级别为空 |
33 | 在消息、包或组外出现无效内容 |
34 | 不允许嵌套指示器 |
35 | 数据元素或段重复过多 |
36 | 段组重复过多 |
37 | 字符类型无效 |
38 | 在小数点前缺少数字 |
39 | 数据元素太长 |
40 | 数据元素太短 |
41 | 永久性通信网络错误 |
42 | 临时性通信网络错误 |
43 | 未知交换收件人 |
45 | 尾部分隔符 |
46 | 不支持的字符集 |
47 | 不支持信封功能 |
48 | 违反了依存关系条件 |
70 | 事务集缺失或事务集标识符无效 |
71 | 事务集或组控制编号不匹配 |
72 | 无法识别的段 ID |
73 | XML 的位置不正确 |
74 | 段组重复过少 |
75 | 段重复过少 |
76 | 找到的数据元素过少 |
以下错误/语法错误代码将用于 X12:
错误/语法错误代码 (适用于 X12) |
报告的错误说明 |
---|---|
1 | 不支持功能组 |
2 | 不支持功能组版本 |
3 | 功能组尾部缺失 |
4 | 功能组标头和尾部中的组控制编号不一致 |
5 | 包含的事务集数与实际计数不匹配 |
6-26 | 其他不支持的验证错误 |
接收管道为每个为了响应传出交换而接收的功能确认更新的数据
对于接收管道接收的每个功能确认,发送管道会更新所发送相关交换的状态报告条目。
EDI 拆装器使用传入确认的交换和组标头段中的数据来定位数据存储区中的记录:
ACK 中的字段 | 数据存储中的字段 | 评论 |
---|---|---|
交换发送方 ID | 交换收件人 | 适用于 X12 和 EDIFACT |
交换接收方 ID | 交换发送方 | 适用于 X12 和 EDIFACT |
- | 交换日期 | - |
交换控制编号 | 交换控制 ID | 仅适用于 EDIFACT |
组控制编号 | 组控制编号 | 仅适用于 X12 |
- | 交换方向 = 发送 | 由于要在 BIBO 方案中实现唯一性,因此是必需 |
记录类型 | 功能确认状态 | 适用于 X12 和 EDIFACT |
存储的数据包括:
记录类型 = 功能 ACK 状态
功能确认方向 = 接收
功能确认状态 = 按照接收来更新数据
交换接收器 = 现有数据
交换发送方 = 现有数据
交换日期 = 现有数据
交换控件 ID = 现有数据
组控制编号 = 现有数据
功能 ID 代码 = 现有数据
事务集计数 = 现有数据
功能确认交换控制 ID = 更新数据
功能确认交换日期 = 更新数据
功能确认交换时间 = 更新数据
传送的事务集的计数 = 更新数据(X12 AK903,不适用于 EDIFACT)
接受的事务集的计数 = 更新数据(X12 AK904,不适用于 EDIFACT)
确认/操作代码 = 更新数据(X12 AK901 和 UCI4)引用注释 1
错误/语法错误代码 = (X12 AK905 和 UCI5) 请参阅注释 2
其他 X12 ACK 错误代码 2 = 更新数据 (X12-AK906)
其他 X12 ACK 错误代码 3 = 更新数据 (X12-AK907)
其他 X12 ACK 错误代码 4 = 更新数据 (X12-AK908)
其他 X12 ACK 错误代码 5 = 更新数据 (X12-AK909)
将使用以下 ACK/操作代码:
ACK/操作代码中的数据 | 针对状态报告映射 | 评论 |
---|---|---|
A | 已接受 | X12 |
P | 部分接受 | X12 |
R、M、W、X | 已拒绝 | X12 |
E | 接受并出现错误 | X12 |
4 | 已拒绝 | EDIFACT |
7, 8 | 接受/部分接受 | EDIFACT |
以下错误/语法错误代码将用于 EDIFACT:
数据出错/语法错误 Cod 适用于 EDIFACT) 的 ( |
报告错误说明 |
---|---|
2 | 不支持语法版本或级别 |
7 | 交换收件人不是实际的收件人 |
12 | 值无效 |
13 | Missing |
14 | 在此位置不支持该值 |
15 | 在此位置不支持 |
16 | 组分过多 |
17 | 无协议 |
18 | 未指定的错误 |
19 | 十进制符号无效 |
20 | 字符在作为服务字符时无效 |
21 | 无效字符 |
22 | 无效服务字符 |
23 | 未知交换发件人 |
24 | 太旧 |
25 | 不支持测试指示器 |
26 | 检测到重复内容 |
27 | 不支持安全功能 |
28 | 参考不匹配 |
29 | 控制数与接收到的实例数不匹配 |
30 | 组和消息/包混合 |
31 | 在组中有一种以上的消息类型 |
32 | 低级别为空 |
33 | 在消息、包或组外出现无效内容 |
34 | 不允许嵌套指示器 |
35 | 数据元素或段重复过多 |
36 | 段组重复过多 |
37 | 字符类型无效 |
38 | 在小数点前缺少数字 |
39 | 数据元素太长 |
40 | 数据元素太短 |
41 | 永久性通信网络错误 |
42 | 临时性通信网络错误 |
43 | 未知交换收件人 |
45 | 尾部分隔符 |
46 | 不支持的字符集 |
47 | 不支持信封功能 |
48 | 违反了依存关系条件 |
70 | 事务集缺失或事务集标识符无效 |
71 | 事务集或组控制编号不匹配 |
72 | 无法识别的段 ID |
73 | XML 的位置不正确 |
74 | 段组重复过少 |
75 | 段重复过少 |
76 | 找到的数据元素过少 |
以下错误/语法错误代码将用于 X12:
错误/语法错误代码 (适用于 X12) |
报告错误说明 |
---|---|
1 | 不支持功能组 |
2 | 不支持功能组版本 |
3 | 功能组尾部缺失 |
4 | 功能组标头和尾部中的组控制编号不一致 |
5 | 包含的事务集数与实际计数不匹配 |
6-26 | 其他不支持的验证错误 |