EDI&IDOC技术概要Author:冷冬冬&陈凤琼Date:2009年12月10日EDI&IDOC概念EDI:是英文ElectronicDataInterchange(电子数据交换)的缩写,是商业伙伴之间数据交换的一种行业标准。例如:在SAP销售订单处理期间,可通过EDI接口送出和接收各式各样的输出。IDoc:是一种信息系统之间(通常是ERP)进行事务性或数据交换使用的标准数据格式,其中比较公认的是符合EDI标准的IDoc。例如:从外部系统接收到的入站的EDI消息通过一个外部翻译器转换为SAP格式,并作为中间文档存储起来,此中间文档即被称为IDOC。其结构和格式是专门定义的并已成为一种SAP标准。各个应用程序与各种EDI标准都是兼容的。EDI概要EDI主要用于公司之间的数据交换IDOC概要IDOC是SAP接口功能中主要的组成部分,是一个依赖IDOCtype的数据实例。messagetype:指明数据处理的意图,每个messagetype关联一个IDoctype。一个IDOCType可以用于多个Messagetype。(如下左图)例如:ORDERS01可以用于销售订单、采购订单、报价、确认;每个使用不同的Messagetype。IDoctype:定义数据结构的细节,IDOCtype和IDOC是一对多关系。(如下右图)IDOC概要IDOC结构:IDoc结构是SAP系统的标准。它由三和部分组成ControlRecord:控制记录字段的内容,它唯一地标识一个中间文档。DataRecord:由若干节组成的数据记录,它包含详细说明物料和数量的业务数据。StatusRecord:通知当前EDI消息状态的状态记录(如传送给应用程序、付邮的影印件等)。它输出的每一步都将导致一个新的状态记录。IDOC配置目前使用系统标准的IDOCtype和Messagetype,因此IDOC系统配置可分为以下四个步骤进行:1,RFC目标系统配置,T-CODE:SM592,端口配置,T-CODE:WE213,定义伙伴参数,T-CODE:WE204,查看生成IDOC列表,T-CODE:WE05IDOC配置1,RFC目标系统配置,T-CODE:SM59IDOC配置2,端口配置,T-CODE:WE21IDOC配置3,定义伙伴参数,T-CODE:WE20IDOC配置4,查看生成IDOC列表,T-CODE:WE05IDOC实例范例:Purchaseorder/Salesorders(MM-PUR-PO,SD-SLS-SO)目的:将客户端SAP系统的PO,用EDI形式发送到供应商的SAP系统;供应商SAP系统自动接收发送过来PO信息,并根据接收到的PO信息自动创建SO,产生SO单号。流程:如图所示IDOC实例一,根据本例发送方UP2(500)系统发送PO的IDOC配置,需进行以下三步:1,配置发送方RFC目标系统2,配置发送方端口3,配置发送方供应商伙伴参数(只用定义出口参数)二,接收方UPG(100)接收PO并自动生成SO的IDOC配置,需进行以下两步:1,配置接收方客户伙伴参数(只用定义入口参数)2,配置接收方逻辑系统参数(只用定义入口参数)IDOC实例-UP2(500):发送方RFC目标系统配置SM59输入T-CODE:SM59进入目标系统维护界面IDOC实例-UP2(500):发送方RFC目标系统配置SM592,点击“”按钮,进入新建目标系统画面1,选中:ABAPConnectionsIDOC实例-UP2(500):发送方RFC目标系统配置SM591,输入目标系统名称,自定义,无特殊要求2,输入目标系统描述3,输入要连接到的主机的名称,回车会自动带出以下IP地址4,输入要连接到的主机的IP地址IDOC实例-UP2(500):发送方RFC目标系统配置SM591,进入“Logon&Securnity”VIEW2,维护登陆到目标主机的:client,user,password3,先保存,再测试连接IDOC实例-UP2(500):发送方RFC目标系统配置SM591,保存以后,测试连接,如下表示连接成功2,测试登陆,如下表示登陆成功IDOC实例-UP2(500):发送方端口配置WE21输入T-CODE:WE21进入端口配置界面IDOC实例-UP2(500):发送方端口配置WE21EvelynLu1,选中“TransactionalRFC”2,点“”新建端口3,选“OWNportname”4,输入端口名称只需发送方维护端口IDOC实例-UP2(500):发送方端口配置WE211,输入描述2,输入之前新建的目标系统名称3,保存IDOC实例-UP2(500):发送方端口配置WE21保存后新增的端口将出现在左方列表IDOC实例-UP2(500):发送方伙伴参数配置WE20输入T-CODE:WE20进入端口配置界面IDOC实例-UP2(500):发送方伙伴参数配置WE201,选中“PartnerTypeLI”2,点“”新建端口3,输入伙伴参数名称注:此处伙伴参数名称即为供应商名称,需用XK01先建立供应商主档资料,否则此处将出现不存在伙伴参数的错误提示4,输入管理员注:为登陆系统的帐号5,保存IDOC实例-UP2(500):发送方伙伴参数配置WE20保存后新增的伙伴参数将出现在左方列表保存后才能建立outboundparamtrs,点此进入下面的出口参数配置画面IDOC实例-UP2(500):发送方伙伴参数配置WE201,输入PartnerRole注:定义供应商伙伴参数时使用”VN“2,输入MessageType注:此处使用系统标准的消息类型3,输入之前建立的端口名称,pack.size取14,OutputMode选此5,输入IDOCType注:此处使用系统标准的IDOC类型IDOC实例-UP2(500):发送方伙伴参数配置WE201,点此维护”MessageControl“2,输入Application,Messagetype,Processcode注:使用系统标准的应用3,保存,并返回IDOC实例-UP2(500):发送方伙伴参数配置WE20保存并返回后可以看到新增加的出口参数。注:至此本例中发送方发送PO的IDOC配置流程已完成.本例中不需要返回接收方的confirm信息,因此发送方不用配置InboundparmtrsIDOC实例-UP2(500):发送方供应商主档维护注意事项在发送方供应商主档资料中,需要将接收方的客户名称维护在此栏位。否则提示:VKORG,VTWEG,SPARTcannotbedeterminedforcustomer***,vendorQ752522039(WE05)注:发送方的PO付款条件必须跟接受方维护的Customer里面的付款条件一致在发送方物料inforecord主档资料中,需要将接收方的物料名称维护在此栏位。否则提示:Thematerialnumberforitem000010couldnotbeidentified此处维护的Vendormat.no:必须在接受方维护,并且维护salesview,而且销售方式跟customer一致,而且需维护condition(总之该料号在接受方能正常开SO)basicunit跟发送方也需要相同IDOC实例-UP2(500):发送方单位设定—TCODE:CUNI根据发送方物料主档中的单位,需要在此确定是否有维护对应的ISO标准单位,只有维护了,才能实现两个系统间数据的相互转换此外,Primarycode需勾选上否则提示:ISOunitofmeasurePCisnotassigned(item)发送方跟接受方均需要维护IDOC实例-UP2(500):发送方NEU输出类型的维护—TCODE:SPRO使用NEU这种OutputType输出POIDOC实例-UP2(500):发送方NEU输出类型的维护—TCODE:SPROProcessingRoutings中需要维护EDI这种类型IDOC实例-UP2(500):发送方NEU输出类型的维护—TCODE:SPROPartnerroles中需要维护EDI对应的VN这种functionIDOC实例-UP2(500):发送方的ConditonRecord维护—TCODE:MN04(用于默认message,不用手动去维护)在此需要在IDOC配置好以后,开立PO以前需用MN04维护Output--ConditionRecords,才能在Release并保存PO时产生Message信息,自动发出POIDOC实例以上完成了发送方UP2(500)发送PO的三步配置。以下是接收方UPG(100)接收PO信息,并进行处理自动生成SO的两步配置。IDOC实例-UPG(100):接收方伙伴参数配置WE20输入T-CODE:WE20进入端口配置界面IDOC实例-UPG(100):接收方伙伴参数配置WE201,选中“PartnerTypeKI”4,输入管理员注:为登陆系统的帐号2,点“”新建端口3,输入伙伴参数名称注:此处伙伴参数名称即为客户名称,需用XD01先建立客户主档资料,否则此处将出现不存在伙伴参数的错误提示5,保存IDOC实例-UPG(100):接收方伙伴参数配置WE20保存后新增的伙伴参数将出现在左方列表保存后才能建立Inboundparamtrs,点此进入下面的入口参数配置画面IDOC实例-UPG(100):接收方伙伴参数配置WE202,输入MessageType注:此处使用系统标准的消息类型1,输入PartnerRole注:定义客户伙伴参数时使用”SP“3,输入ProcessCode注:此处使用系统标准的ProcessCodeIDOC实例-UPG(100):接收方伙伴参数配置WE20保存并返回后可以看到新增加的入口参数。注:本例中不需要返回接收方的confirm信息,因此接收方不用配置OutboundparmtrsIDOC实例-UPG(100):接收方伙伴参数配置WE201,选中“PartnerTypeLS”2,点“”新建端口3,输入逻辑系统名称名称注:此名称先需用sale于系统中提前维护并保存,如下4,输入管理员注:为登陆系统的帐号5,保存IDOC实例-UPG(100):接收方伙伴参数配置WE20保存后新增的伙伴参数将出现在左方列表保存后才能建立Inboundparamtrs,点此进入下面的入口参数配置画面IDOC实例-UPG(100):接收方伙伴参数配置WE201,输入MessageType注:此处使用系统标准的消息类型注:定义逻辑系统伙伴参数时PartnerRole可以不用输2,输入ProcessCode注:此处使用系统标准的ProcessCodeIDOC实例-UPG(100):接收方伙伴参数配置WE20保存并返回后可以看到新增加的入口参数。注:至此本例中接收方接收PO信息并处理自动生成SO的IDOC配置完成IDOC实例-UPG(100):接收方客户主档维护注意事项客户主档中这两个栏位必需维护,否则接收时会提示如下错误。如果建立主档时未维护,可事后用XD02进来维护IDOC实例-UPG(100):接收方单位设定—TCODE:CUNI根据接收方物料主档中的单位,需要在此确定是否有维护对应的ISO标准单位,只有维护了,才能实现两个系统间数据的相互转换此外,Primarycode需勾选上IDOC实例-UPG(100):接收方ViewfortableEDSDC维护—TCODE:VOE2ViewfortableEDSDC必需维护,否则接收时会提示如下错误Sorg,DistributionChannel,Division必须与物料,Customer里面的一致SalesDocumentType:维护成需要开立的SOTYPEIDOC实例-UPG(100):接收方ViewfortableEDPAR维护—TCODE:VOE4ViewfortableEDPAR必需维护,否则接收时会提示如下错误ExternalPartne