使用如下代码:”没有开始交换。“错误的序列化EdiMessage
...
EdiMessage ediMessage = (EdiMessage)instance;
using (FileStream ediStream = File.OpenWrite(file))
{
using (EdifactWriter writer = new EdifactWriter(ediStream))
{
writer.Write(ediMessage);
}
}
我收到错误消息“没有交换开始。”
堆栈跟踪writer.Write调用下面(最后一次公开版Edifabric的):
at EdiFabric.Framework.Writers.EdiWriter`2.Write(EdiMessage message)
它涉及与BGM,一些FTX和UNH一个D96A INVOIC对象。对象类是。 EdiWriter在电话writer.Write
上提出异常。
ediMessage
内容似乎有效。据Edifabric documentation它会自动添加默认EDIFACT分隔符:
如果没有明确指定笔者将使用每个标准默认的分隔符:
我忘记什么设置?
消息 '无交换开始'。意味着没有创建交换头段。 EDI文件采用如下结构:互换标题 - >群组标题(EDIFACT可选) - >交易 - >群组预告 - >交换预告。在你的情况下,你需要先写一个UNB然后写所有的transactions \ messages。 –
@DonZoeggerle谢谢你的背景;错误中的“交换”一词是由于缺乏EDIFACT术语,当时我不清楚。有了一些额外的灰色单元格,我现在知道它指的是EDI消息交换。 EDIFACT效果很好;简单,优雅的设计! –