我们可以采用波形符分隔文件并将其按原样提供给AS400,还是需要将文件转换为固定宽度? AS400工程师告诉我,该文件需要转换为固定宽度。
环境由SQL Server 2005,Visual Studio 2005和AS400组成。波浪线分隔文件由外部源提供。我们正在尝试获取此文件并将其发送到AS400以处理采购订单。
以下是我们需要提供给AS400的文件示例。最初的想法是转换为SQL Server可以读取的格式,按组划分为不同的表,即PROCESSPO,PO和LINE,因此我们可以正确定义列。然后创建文件,在本例中为3,供开发人员输入AS400。总会有5种不同类型的记录,但我只提供3种记录类型,因为这是我给予的所有数据。
PROCESSPO~TP-4186~CARQUEST~ALLTRADE~1.2~2011-04-06T13:24:45.000-07:00 PO~TP-4186~TP-4186~2011-04-06T13:24:45.000-07:00~TR-13824~TR-13824~1~0~RAL~Raleigh DC~2635 Millbrook Road~~~Raleigh~NC~27604~US~555-555-5555~177200~DCS Raleigh Store~2635 Millbrook Road~~~Raleigh~NC~27604~US~555-123-4567~ LINE~TP-4186~1~TP-4186~430937~TLS~1.0~EA~FEDGRD~ALLT_LB~Alltrade Tools LLC~1431 Via Plata~~~Long Beach~CA~90810~US~310-522-9008~
由于我不知道AS400,我不知道它将如何处理这些数据,但我已经与不同的资源进行了交谈,他们说它可以接受Excel电子表格,但不确定它将如何读取数据,因为它们只能工作电子表格全面设置了列数。出于同样的原因,我也为Stackoverflow社区打了折扣。
在与AS400开发人员交谈之后,他决定一个固定的宽度文件是他的理想解决方案,但这不是一个要求,比任何人都更渴望。我创建了多个文件,并从2005年的VISUAL STUDIO直接向AS400提供数据。感谢所有人的反馈。
答案 0 :(得分:3)
AS400可以处理波浪号分隔文件,但前提是AS400程序员编写代码才能执行此操作。我认为你的AS400工程师真的告诉你,他们无意修改代码以适应波浪分隔,所以你可以将文件翻译成固定宽度的格式。
答案 1 :(得分:3)
更新:完全更改答案以匹配新问题。
作为单个文件,IBM i无法处理该文件。上传只能进入一个表。正如另一个答案所提到的,你可以为每种记录类型上传5个单独的文件,但是当你的程序可以解析所有内容并直接将其添加到数据库时,为什么要编写程序来执行此操作。该程序可以用任何语言轻松编写,包括RPG。
有人认为,这看起来像是EDI文件。这是真的?如果是这样,有些软件包可以自动解析它并转储到表中。我现在正在研究EDI。
答案 2 :(得分:1)
我正在观看Mike Wills的答案下积累的评论流,并认为Stack Overflow很酷,可能不是那次谈话的最佳媒介。 ;)
尽管如此,数据接口是几乎总是可以实现的任务之一,因此在这里接近解决方案会更好。 (如果它也开始收集评论,我希望编辑这个答案。)
[编辑:利用添加到原始问题的其他评论和示例数据]
由于您的各种记录看起来是不兼容的格式,我会按照您提议的计划将接收到的波浪线分隔的输入拆分为单独的表或文件,每种记录类型一个。然后,将数据放入AS / 400应该很容易。
此时,我不确定究竟是什么问题。你在问题中添加了太多信息,这很好,而你的基本方法对我来说似乎很合理。如果您可以更详细地说明您的AS / 400人员需要什么,那可能会有所帮助。 (例如,AS / 400上是否已准备好接受数据的适当文件?)
答案 3 :(得分:0)
请注意,AS400上的FTP服务器非常智能,可以将传入的平面文件转换为AS / 400记录,作为FTP上传过程的一部分。
因此,我建议调查将波形符分隔文件转换为FTP服务器理解的形式(可能通过用标签替换波形符)。