2017-01-30 46 views
0

这是我做的一个例子204。它使用两种不同的验证工具(EDI记事本和Altova)进行验证,但是当我尝试使用EDI结构来解析它时,它会得到ISA和GS数据,但随后出现“无效节点名称:ST”错误。当我尝试使用EDI Fabric读取X12 204时,出现“无效节点名称:ST”,但文件格式正确。任何想法为什么?

我想不通为什么,有什么想法?

ISA*ZZ*   *ZZ*   *ZZ*XXXX   *ZZ*YYYY   *170130*1025*U*00401*485789958*0*P*~ 
GS*SM*YYYY*XXXX*20170130*1027*485790079*X*004010 
ST*204*485790093 
B2**YYYY**123456789**CC 
B2A*00 
L11*123456789*CR 
S5*1*LD 
G62*64*20160131*1*1351 
SE*7*485790093 
GE*1*485790079 
IEA*1*485789958 

下面是代码:

internal static void Parse204(FileStream file, 
List<MyCompany.TruckRouteInfo> result) 
     { 
      var reader = EdiFabric.Framework.Readers.X12Reader.Create(file); 
      file.Flush(); 

      var qEdiItems = reader.ReadToEnd(); 

      var ediItems = qEdiItems.ToList(); 

      var m204 = ediItems.OfType<M_204>().ToList(); 

      foreach (var item in m204) 
      { 
       MyCompany.TruckRouteInfo stop = new MyCompany.TruckRouteInfo(); 

       foreach (var l11 in item.S_L11) 
       { 
        if (l11.D_128_2 == EdiFabric.Rules.X12004010204.X12_ID_128.CR) 
        { 
         stop.Reference1 = l11.D_127_1; 
        } 
       } 
       result.Add(stop); 
      } 
     } 

回答

0

我刚刚从字面上复制你的榜样,并粘贴到被加工精细的文件。在我的机器上工作:) 我最好的猜测是打开文件并检查行结束符是否存在任何差异,这些差异可能在我复制它时粘贴了它。

+0

我的测试文件也使用EDI记事本和XML Spy进行验证,当我尝试使用非常通用的210,214或990时,此设置可以正常工作,但不适用于204。 –

相关问题