【发布时间】:2014-06-11 14:28:15
【问题描述】:
我们正在尝试将文件帮助程序用于一些专门处理 EDI 的文件接口项目。下面的示例定义使用了 EDI 858 规范。像大多数接口规范一样,每个供应商都有自己的风格。您可以找到示例 858 EDI 规范 here
我们的供应商有自己的风格;这是我们目前在转换之前使用的示例记录定义:
H1_Record_type As String ' * 8 EDI858FF
H2_TRANS_DATE As String ' * 8 yyyyMMdd
H3_Trans_type As String ' * 2 00 = New, 01 = Cancel Carrier, 03 = Delete, 04 = Change
H4_Pay_type As String ' * 2 PP = Prepaid, CC = Collect, TP = Third Party (our default is PP)
H5_Load As String ' * 30 Authorization
H6_Load_Ready_date As String ' * 12 yyyyMMddHHmm
H7_Commodity As String ' * 10
H8_Customer_HQ_ID As String ' * 20 hard coded '0000000001'
H9_Customer As String
H10_Mill_ID As String ' * 20 Shipping Perdue Location or Destination Perdue Location
H11_Tender_Method As String ' * 10 blank for now
H12_Carrier_ID As String ' * 10 blank for now
H13_Weight As String ' * 7 estimated total load weight
H14_Weight_Qualifier As String ' * 2 blank for now
H15_Total_Miles As String ' * 7 zero for now
H16_Total_quantity As String ' * 7 blank for now
H17_Weight_Unit As String ' * 1 L = pounds, K = Kilograms, L=default
H18_REF As String ' * 3 REF
HR1_Ref_qualifier As String ' * 3 CO = Deliv Dest ref., P8 = Deliv Orig Ref.
HR2_Ref_value As String ' * 80
H19_END_REF As String ' * 7 END REF
H20_SPEC_INSTRUCTION As String ' * 16 SPEC INSTRUCTION
HS1_Qualifier As String ' * 3 1 = Credit Hold, 7T = Export Order, HM = Hazmat, L = Load ready for pickup
' PTS = Tarp, RO = Hot Load, TAR = Full Tarp, WTV = Weight Verification, DDN = Driver needs TWIC
' PR = Prohibited
H21_END_SPEC As String ' * 20 END SPEC INSTRUCTION
H22_NOTE As String ' * 4 NOTE
HN1_Note_Qualifier As String ' * 3 SPH = Special Handling, PRI = Load Priority, DEL = Transit Days
HN2_Note As String ' * 80
H23_END_NOTE As String ' * 8 END NOTE
H24_EQUIPMENT As String ' * 9 EQUIPMENT
H25_END As String ' * 13 END EQUIPMENT
H26_LOAD_CONTACT As String ' * 12 LOAD CONTACT
LC1_Contact_Name As String ' * 60
LC2_Contact_type As String ' * 2 EM= E-mail, FX = Fax, TE = Telephone
LC3_Contact_Data As String ' * 80
H27_END_LOAD_CONTACT As String ' * 16 END LOAD CONTACT
H28_STOP As String ' * 4 STOP There will always be 2 - CL and CU
S1_Stop_Number As String ' * 2
S2_Stop_Reason As String ' * 2 CL = Complete Load, CU = Complete Unload (one of each required for every load)
S3_LOCATION As String ' * 8 LOCATION
SL1_Location_ID As String ' * 20
SL2_Location_Name As String ' * 60
SL3_Location_Add1 As String ' * 55
SL4_Location_Add2 As String ' * 55
SL5_Location_City As String ' * 30
SL6_Location_State As String ' * 2
SL7_Location_Zip As String ' * 10 (use only 5 digits)
SL8_Location_Country As String ' * 3 USA, CAN, MEX
S4_END_LOCATION As String ' * 12 END LOCATION
S5_STOP_DATE As String ' * 9 STOP DATE
SD1_Date_Qualifier As String ' * 3 37 = No earlier than, 38 = No later than, 10 = Expected arrival time, 35 = Actual arrival
' 11 = Actual departure
SD2_Date_Time As String ' * 12 yyyyMMddHHmm
S6_END_STOP_DATE As String ' * 13 END STOP DATE
S7_STOP_REF As String ' * 8 STOP REF
SR1_Reference_Qualifier As String ' 3 72 = Transit Time, DK = Dock Number, OQ = Order Number
SR2_Reference_Value As String ' * 80
S8_END_STOP_REF As String ' * 12 END STOP REF
H29_END_STOP As String ' * 8 END STOP
H30_ORDER As String ' * 5 ORDER
O1_Order_Number As String ' * 80
H31_END_ORDER As String ' * 9 END ORDER
这是一个示例消息,通常会在一行中:
EDI858FF~20140611~04~PP~1266010982~201406060700~CANOLA ML~0000000001~企业名称~RICHLAND~60000~~0~~L~REF~SA~客户 名称~END REF~STOP~01~CL~LOCATION~RICHLAND~~~~~~~~END LOCATION~STOP DATE~37~201406060000~END STOP DATE~STOP REF~OQ~5568~END STOP REF~END STOP~STOP~02~CU~LOCATION~261450~~~~~~~~END LOCATION~STOP DATE~37~201406060000~END STOP DATE~STOP REF~OQ~5568~END STOP REF~END 停止~订单~5568~结束订单
我真的认为这对 Filehelpers 来说可能是一项过于复杂的任务,但我想把它发布给社区,看看大家是否能提供帮助。
如您所见,该文件大部分以波浪号分隔,但定义中的某些字段也充当分隔符。例如 REF 或 STOP 都包含可能是许多记录深度的附加信息。您可以有多个 STOP 定义 1 到 999 个位置记录。我真的真的认为这对 Filehelpers 来说太过分了......
如果您要尝试对文件助手进行此配置,您将从哪里开始以及如何处理所有子字段?
【问题讨论】:
-
您是否希望使用 FileHelpers 生成有效的 EDI?您的 EDI 样本不完整。 ANSI X12 文件中有三个分隔符:段终止符(可能是 CR 或 LF,无法从您的示例中分辨出来)、元素分隔符(在您的情况下为波浪号)和子元素分隔符(在您的样本中缺少 ISA 信封段)。您可能可以使用文件助手,但这将是大量的代码,而且很麻烦。 EDIDev.com 有可以在这里为您提供帮助的库,或者商业翻译也是明智的(用于 TP 管理和 FA 协调)
-
感谢您的回复。我无法访问我们使用的供应商的实际 858 规范。只有他们希望我们提供给他们的系统的文件规范,这是我提供的。我会看看这些库,看看我们是否可以合并它们
标签: edi filehelpers