使用如下代碼:」沒有開始交換。「錯誤的序列化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效果很好;簡單,優雅的設計! –