1、 Hand Enterprise SolutionsAURORA-IDOC设计说明及开发指南作者:Jinxiao.lin建档日期:2011/7/10最近更新:2013/5/23控制号: 版本: 1 .3Note: Control Number and Version are marked by a Word Bookmark so that they can be easily reproduced in the header and footer of documents. When you change either of these values, be careful not to a
2、ccidentally delete the bookmark. You can make bookmarks visible by selecting Tools-Options匳iew and checking the Bookmarks option in the Show region.审批:Project Manager拷贝号_文档控制记录更改日期作者版本文档状态更改参考2013/5/23Jinxiao.lin1.32011/11/24Jinxiao.lin1.22011/11/1ru.lu1.12011/7/10Xiaopeng.zhu1.0Draft1.0创建Jinxiao.li
3、nXiaochen.shi(SAP)审阅人姓名职位分发拷贝号姓名职位1234Note: The copy numbers referenced above should be written into the Copy Number space on the cover of each distributed copy. If the document is not controlled, you can delete this table and the Copy Number label from the cover page.(9-Dec-96)文档目录文档控制ii基本概念介绍1SAP
4、IDoc介绍1IDoc主要功能1IDoc文件例子1IDoc的数据结构2IDoc文件2Aurora IDoc2Aurora IDoc事务流程3项目实施4部署4从公司cvs下载最新的aurora_idoc项目4修改配置文件4开放端口5前台配置10配置JCO功能。10在系统中注册配置页面,效果如下:11管理14启动和关闭Aurora IDoc14监控,查询数据14数据库表14起初配置表14运行时表15SAP IDOC配置16配置接收/发送IDOC系统(TCODE: SALE)16定义RFC目标系统(TCODE:SM59)17配置IDOC端口(TCODE:WE21)18创建段类型(TCODE:WE31
5、)19创建IDOC类型(TCODE:WE30)19定义消息类(TCODE:WE81)20把基本类型分配给消息类型(TCODE:WE82)21分配模型视图(TCODE:BD64)21把消息类型加入伙伴参数文件的出站参数22编写代码23把idoc设置成后台自动发送(TCODE:sm36)24察看IDOC发送情况(TCODE:WE02和sm59)24SAP网关配置24常见问题28 附件30配置页面文件30 (9-Dec-96)30Company Confidential - For internal use only基本概念介绍SAP IDoc介绍IDoc的全称是Intermediate Docum
6、ent,是SAP用于传输业务数据的一种数据格式。IDoc主要功能IDoc主要用于系统间的数据同步,数据发起方是SAP,接受方是另一方系统。举例来说,在一个特定的SAP服务器配置了IDoc之后,当一个SAP用户创建一张采购订单,其信息会自动通过IDoc传输给另一方系统,此系统根据接受到的数据,在本系统中自动创建一张销售订单。IDoc文件例子EDI_DC4080000000000009407807013012MATMAS05MATMASSAPIDSLSIDSCLNT800A000000071LSHANDMAS201106201422022011062014220000500000000000000
7、2203201103123047201103123047KFERTMEA0000.0000.0000.0000.0000.0000.0000.0000.0000.0000.00.000000K000000000000000000NORM0.00.00.0000.00.0000.0000.00000051111ZH005EA110.0000.0000.0000.0000.000000.000IDoc的数据结构IDoc的数据结构分三个层次:1. IDoc类型(idoc type)2. 段(segment)3. 字段(field)不同的IDoc类型用于处理不同类型的信息。比如IDoc格式ORDERS
8、01可用于采购订单(Purchase Order)和订单确认(Order Confirmation)。IDoc类型下可以定义一个或多个段。段类似于数据库中的表,段可以有层次结构,即段可以有父段,也可以有子段。段下定义一个或多个字段,类似于数据库中的表字段。IDoc文件一个IDoc文件包含两种数据:1. 控制记录(Control Record):包含IDoc类型、伙伴端口、SAP R/3的版本等信息。对应上面文件中IDOC节点的第一个子节点。2. 数据记录(Data Record):包含段和字段的数据信息。对应上面文件中的IDOC节点下除第一个子节点外的其余节点。Aurora IDoc Auro
9、ra IDoc是基于Aurora框架研发出来的一款产品。它独立部署,不依赖于任何Web容器,并且可以部署在windows、unix和linux等各种操作系统上。Aurora IDoc事务流程1. Aurora IDoc启动时会登录SAP,并向SAP注册一个ProgramID。2. 当SAP系统有数据新增或更改时,向上述的ProgramID发送IDoc数据流。3. Aurora IDoc接收到IDoc数据流,并以XML文件的形式保存在指定的文件目录中。4. Aurora IDoc解析此XML文件,并根据预先配置的对应关系,数据插入临时表中。5. 在插入临时表后,调用项自定义的客户化数据库pack
10、age,把临时表中德数据插入到正式业务表中。6. 在成功插入业务表后,再把解析的数据插入系统通用的接口表(FND_INTERFACE_HEADERS ,FND_INTERFACE_LINES ),作为数据备份。7. 根据配置决定是否删除此xml文件。8. 给sap方一个反馈信息,这个步骤可选。注:以上七个步骤都是全自动化的操作,项目实施时只需要做两件事:1. 配置对应关系2. 编写客户化数据库package项目实施部署从公司cvs下载最新的aurora_idoc项目部署目录结构: binStartup.bat和startup.shshutdown.bat和shutdwon.shMYSERVER
11、.jcoServer BCE.jcoDestinationlog4j.properties(可选) WEB-INFuncertain.xmluncertain.local.xmlaurora.plugin.sap.sync.idocIdoc.configaurora.databasedatasource.configAurora.featureservice-logging.config libaurora.jarclasses12.jar(JDBC驱动)其他jar包classesfeedback_proc_sample.procfnd_idoc_feedbacks.bm这个结构跟tomcat
12、的结构基本类似,仅稍有不同:bin目录是跟web-inf目录是同级的,并减少了很多其他目录和文件。用户只需把自定义的config文件放入web-inf下,把jar包放入lib下,并把其他资源(如果需要)放入bin目录下,在classes目录下放置反馈给sap的程序文件,部署即完成。修改配置文件1. datasource.config:数据库连接2. idoc.config:idoc配置文件3. uncertain.xml:日志文件路径4. MYSERVER .jcoServer参数含义例子jco.server.progidsap注册的ProgramIDHAND1jco.server.nameS
13、AP的服务器名字IDSjco.server.gwhostIP192.168.11.28jco.server.gwserv端口号sapgw00jco.server.unicode编码1jco.server.repository_destination指向.jcoDestination这个文件BCE参数说明例子jco.client.lang语言ENjco.client.client环境800jco.client.user 密码1332jco.client.passwd用户handsapjco.client.sysnr端口号00(加上sapgw就是MYSERVER .jcoServer中的jco.s
14、erver.gwserv属性值)jco.client.ashostIP192.168.11.285. BCE.jcoDestinat开放端口在service文件,它在windows和unix系统下路径分别是:1. Windows系统在C:WindowsSystem32driversetcservice2. unxi或linux在/etc/services注:unix/linux刷新服务的命令: refresh s inetd。如果这个命令没效果,请重启系统试试。添加以下内容:sapdp00 3200/tcpsapdp01 3201/tcpsapdp02 3202/tcpsapdp03 3203
15、/tcpsapdp04 3204/tcpsapdp05 3205/tcpsapdp06 3206/tcpsapdp07 3207/tcpsapdp08 3208/tcpsapdp09 3209/tcpsapdp10 3210/tcpsapdp11 3211/tcpsapdp12 3212/tcpsapdp13 3213/tcpsapdp14 3214/tcpsapdp15 3215/tcpsapdp16 3216/tcpsapdp17 3217/tcpsapdp18 3218/tcpsapdp19 3219/tcpsapdp20 3220/tcpsapdp21 3221/tcpsapdp22
16、3222/tcpsapdp23 3223/tcpsapdp24 3224/tcpsapdp25 3225/tcpsapdp26 3226/tcpsapdp27 3227/tcpsapdp28 3228/tcpsapdp29 3229/tcpsapdp30 3230/tcpsapdp31 3231/tcpsapdp32 3232/tcpsapdp33 3233/tcpsapdp34 3234/tcpsapdp35 3235/tcpsapdp36 3236/tcpsapdp37 3237/tcpsapdp38 3238/tcpsapdp39 3239/tcpsapdp40 3240/tcpsapd
17、p41 3241/tcpsapdp42 3242/tcpsapdp43 3243/tcpsapdp44 3244/tcpsapdp45 3245/tcpsapdp46 3246/tcpsapdp47 3247/tcpsapdp48 3248/tcpsapdp49 3249/tcpsapdp50 3250/tcpsapdp51 3251/tcpsapdp52 3252/tcpsapdp53 3253/tcpsapdp54 3254/tcpsapdp55 3255/tcpsapdp56 3256/tcpsapdp57 3257/tcpsapdp58 3258/tcpsapdp59 3259/tcp
18、sapdp60 3260/tcpsapdp61 3261/tcpsapdp62 3262/tcpsapdp63 3263/tcpsapdp64 3264/tcpsapdp65 3265/tcpsapdp66 3266/tcpsapdp67 3267/tcpsapdp68 3268/tcpsapdp69 3269/tcpsapdp70 3270/tcpsapdp71 3271/tcpsapdp72 3272/tcpsapdp73 3273/tcpsapdp74 3274/tcpsapdp75 3275/tcpsapdp76 3276/tcpsapdp77 3277/tcpsapdp78 3278
19、/tcpsapdp79 3279/tcpsapdp80 3280/tcpsapdp81 3281/tcpsapdp82 3282/tcpsapdp83 3283/tcpsapdp84 3284/tcpsapdp85 3285/tcpsapdp86 3286/tcpsapdp87 3287/tcpsapdp88 3288/tcpsapdp89 3289/tcpsapdp90 3290/tcpsapdp91 3291/tcpsapdp92 3292/tcpsapdp93 3293/tcpsapdp94 3294/tcpsapdp95 3295/tcpsapdp96 3296/tcpsapdp97
20、3297/tcpsapdp98 3298/tcpsapdp99 3299/tcpsapgw00 3300/tcpsapgw01 3301/tcpsapgw02 3302/tcpsapgw03 3303/tcpsapgw04 3304/tcpsapgw05 3305/tcpsapgw06 3306/tcpsapgw07 3307/tcpsapgw08 3308/tcpsapgw09 3309/tcpsapgw10 3310/tcpsapgw11 3311/tcpsapgw12 3312/tcpsapgw13 3313/tcpsapgw14 3314/tcpsapgw15 3315/tcpsapg
21、w16 3316/tcpsapgw17 3317/tcpsapgw18 3318/tcpsapgw19 3319/tcpsapgw20 3320/tcpsapgw21 3321/tcpsapgw22 3322/tcpsapgw23 3323/tcpsapgw24 3324/tcpsapgw25 3325/tcpsapgw26 3326/tcpsapgw27 3327/tcpsapgw28 3328/tcpsapgw29 3329/tcpsapgw30 3330/tcpsapgw31 3331/tcpsapgw32 3332/tcpsapgw33 3333/tcpsapgw34 3334/tcp
22、sapgw35 3335/tcpsapgw36 3336/tcpsapgw37 3337/tcpsapgw38 3338/tcpsapgw39 3339/tcpsapgw40 3340/tcpsapgw41 3341/tcpsapgw42 3342/tcpsapgw43 3343/tcpsapgw44 3344/tcpsapgw45 3345/tcpsapgw46 3346/tcpsapgw47 3347/tcpsapgw48 3348/tcpsapgw49 3349/tcpsapgw50 3350/tcpsapgw51 3351/tcpsapgw52 3352/tcpsapgw53 3353
23、/tcpsapgw54 3354/tcpsapgw55 3355/tcpsapgw56 3356/tcpsapgw57 3357/tcpsapgw58 3358/tcpsapgw59 3359/tcpsapgw60 3360/tcpsapgw61 3361/tcpsapgw62 3362/tcpsapgw63 3363/tcpsapgw64 3364/tcpsapgw65 3365/tcpsapgw66 3366/tcpsapgw67 3367/tcpsapgw68 3368/tcpsapgw69 3369/tcpsapgw70 3370/tcpsapgw71 3371/tcpsapgw72
24、3372/tcpsapgw73 3373/tcpsapgw74 3374/tcpsapgw75 3375/tcpsapgw76 3376/tcpsapgw77 3377/tcpsapgw78 3378/tcpsapgw79 3379/tcpsapgw80 3380/tcpsapgw81 3381/tcpsapgw82 3382/tcpsapgw83 3383/tcpsapgw84 3384/tcpsapgw85 3385/tcpsapgw86 3386/tcpsapgw87 3387/tcpsapgw88 3388/tcpsapgw89 3389/tcpsapgw90 3390/tcpsapg
25、w91 3391/tcpsapgw92 3392/tcpsapgw93 3393/tcpsapgw94 3394/tcpsapgw95 3395/tcpsapgw96 3396/tcpsapgw97 3397/tcpsapgw98 3398/tcpsapgw99 3399/tcp前台配置前台配置需要:一个基于Web的Aurora项目。在做配置时,确保此项目连接的数据库和Aurora IDoc连接的数据是一致的。配置JCO功能。1. 添加JCO相关文件在WEB-INF目录下创建目录aurora.plugin.sap,然后在这个目录下创建sap.config文件,将SAP服务器的连接配置到文件中,
26、内容如下: 属性名描述server_ipSAP服务器的ip地址sid为当前sap实例命名,方便引用sap_clientSAP中client的概念user_idSap rfc用户名password密码default_lang设定jco连接语言max_connJco连接池最大连接数system_numberSap中系统标识2. 修改uncertain.xml文件,添加黄色底色部分在系统中注册配置页面,效果如下:1. 同步IDOC结构打开“同步IDOC结构”功能,页面如下:这个页面form中的参数请sap人员协助配置,具体可参考下图的参数:点击段类型,查看段下的字段,效果如下:这个功能主要是从SAP
27、方获取IDoc的结构。获取IDOC结构后,可以快速配置对应关系。2. 配置对应关系打开“IDOC对应关系”功能,管理SAP段和数据库表的对应关系。建立对应关系后,Aurora IDoc在接收到IDoc数据时,能够根据对应关系,把段和字段的内容插入到数据库对应的表中。界面配置如下:点击“快速生成对应表和对应关系”按钮后,系统依据IDOC结构,用动态SQL自动生成名称相同的表和字段结构。这些自动被创建的表统称为临时表。 3. 配置IDOC类型对应的存储过程在数据根据对应关系插入到数据库的临时表中后,Aurora IDoc调用一个存储过程,把临时表中的数据插入到正式业务表中。这个存储过程,根据项目业
28、务场景自行编写。如果需要在同步完程序后,给sap方一个反馈,请配置“反馈程序”,文件目录在classes下。配置页面如下:“有次序”这个属性表示,IDoc数据是否有严格的次序。如果某次同步IDOC数据发生异常后,下次再次接收到同一个IDoc类型的数据,是否处理?选中就是不处理,不选中,就是继续处理。管理和监控启动和关闭Aurora IDoc1. 启动进入bin目录,运行startup.bat或startup.sh文件2. 停止进入bin目录,运行shutdown.bat或shutdown.sh文件。3. 查看日志查看uncertain.local.xml中定义的log目录。监控日志和数据1.
29、查看aurorawebbindev_jco_rfc.trc文件,可以获取与SAP交互出错信息。2. 查看auroraweblogs下,可以获取到AURORA抛出的信息3. 查看fnd_idoc_files表可以获取到IDOC同步的步骤状态注意:SAP方更改IDoc segment或者field后,需要重新启动Aurora IDoc才能正确接收到更新后的结构文件。数据库表起初配置表表名说明fnd_idoc_segmentsIDOC 段结构表fnd_idoc_fieldsIDoc字段结构表 fnd_idoc_segment_mapsIDOC 段和数据库表对应关系表fnd_idoc_field_ma
30、psIDOC 字段和数据库表字段对应关系表fnd_idoc_typesIDOC 类型对应的存储过程表运行时表表名说明fnd_idoc_serversIDOC 服务连接表fnd_idoc_files接收到的idoc文件表fnd_interface_headersAurora系统标准接口头表fnd_interface_linesAurora系统标准接口行表fnd_idoc_trx_sample仅测试用,假定是正式的业务表SAP IDOC配置配置接收/发送IDOC系统(TCODE: SALE)定义接收逻辑系统:输入一个逻辑系统名及其描述:定义RFC目标系统(TCODE:SM59)SM59里有很多不同
31、的连接类型:a. ABAP Connections:连接远程SAP系统的, 需要提供作为SAP CLIENT调用系统时的各种参数b. Internal Connections:连接外部HTTP服务,需要提供URL.c. TCP/IP connections:通过TCP/IP层面调用外部服务. 此处选用TCP/IP方式连接.由于接口是从SAP向外部系统抛送的方式,所以在配置RFC连接时需要Registered Server Program方式来连接.因为外部程序不仅要向SAP发出RFC请求,还要允许SAP抛出IDOC,而这是通过JCOServer来连接,所以要告知外部系统一个PROGRAM ID
32、,而外部系统也配置与SAP相同的PROGRAM ID来让SAP与外部系统连接. 配置Unicode格式配置IDOC端口(TCODE:WE21)选择事务性RFC:ALE连接方式因为通过JCOServer连接,它会通过XML解析器,自动把IDOC文件转换成XML文件.只需要添加RFC端口,抛出的XML文件由外部系统来指定存在哪个位置.如果由SAP来指定文件夹则需要创建XML文件.其中目录根据操作系统的不同而指定的地址也不同UNIX: /usr/sap/QAS/SYS/global/WINDOWS: sapdevdbsapmntQASSYSglobal其中黄色部分表示SAP环境功能模块名可制定输出文
33、件的格式在出站:触发器中与RFC关联创建段类型(TCODE:WE31)系统的段类型以E1开头自定义段类型以Z1开头创建段类型后系统会自动创建E2或者Z2的段定义创建IDOC类型(TCODE:WE30)IDOC类型是IDOC文件的结构定义和说明,根据不同的传输格式来定义IDOC类型需要把刚才创建的段类型挂在IDOC类型下面最小数量:该段的最小条目数最大编号:该段得最大条目数创建IDOC类型后,需要设置版本来发布该类型发布后,该版本的IDOC结构无法更改,如要更改需取消发布,更改后再次设置版本定义消息类(TCODE:WE81)把基本类型分配给消息类型(TCODE:WE82)分配模型视图(TCODE
34、:BD64)先创建模型视图然后添加消息类型因为是SAP-外部系统,所以发送方式。输入发送方为当前SAP系统,接收方为目标系统(逻辑系统名)点击菜单中的生成伙伴参数文件点击执行,生成伙伴参数把消息类型加入伙伴参数文件的出站参数因为这里是单向发送IDOC,所以只需要维护出站参数。选择立即转换IDocs。编写代码REPORTZTEST_IDOC.TYPES:BEGINOFTY_MATNR,MATNRTYPEMAKT-MATNR,ENDOFTY_MATNR.DATA:IT_MATNRTYPESTANDARDTABLEOFTY_MATNR,WA_MATNRLIKELINEOFIT_MATNR.SELECTMATNRUPTO100ROWSINTOCORRESPONDINGFIELDSOFTABLEIT_MATNRFROMMAKTWHERESPRAS=1.*
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100