收藏 分销(赏)

AURORA-IDOC设计说明及开发指南.doc

上传人:可**** 文档编号:2955938 上传时间:2024-06-12 格式:DOC 页数:34 大小:883KB 下载积分:10 金币
下载 相关 举报
AURORA-IDOC设计说明及开发指南.doc_第1页
第1页 / 共34页
AURORA-IDOC设计说明及开发指南.doc_第2页
第2页 / 共34页


点击查看更多>>
资源描述
Hand Enterprise Solutions AURORA-IDOC设计说明及开发指南 作者: Jinxiao.lin 建档日期: 2011/7/10 最近更新: 2013/5/23 控制号: 版本: 1 .3 Note: 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 accidentally 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/23 Jinxiao.lin 1.3 2011/11/24 Jinxiao.lin 1.2 2011/11/1 ru.lu 1.1 2011/7/10 Xiaopeng.zhu 1.0 Draft1.0 创建 Jinxiao.lin Xiaochen.shi(SAP) 审阅人 姓名 职位 分发 拷贝号 姓名 职位 1 2 3 4 Note: 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 基本概念介绍 1 SAP IDoc介绍 1 IDoc主要功能 1 IDoc文件例子 1 IDoc的数据结构 2 IDoc文件 2 Aurora IDoc 2 Aurora IDoc事务流程 3 项目实施 4 部署 4 从公司cvs下载最新的aurora_idoc项目 4 修改配置文件 4 开放端口 5 前台配置 10 配置JCO功能。 10 在系统中注册配置页面,效果如下: 11 管理 14 启动和关闭Aurora IDoc 14 监控,查询数据 14 数据库表 14 起初配置表 14 运行时表 15 SAP IDOC配置 16 配置接收/发送IDOC系统(TCODE: SALE) 16 定义RFC目标系统(TCODE:SM59) 17 配置IDOC端口(TCODE:WE21) 18 创建段类型(TCODE:WE31) 19 创建IDOC类型(TCODE:WE30) 19 定义消息类(TCODE:WE81) 20 把基本类型分配给消息类型(TCODE:WE82) 21 分配模型视图(TCODE:BD64) 21 把消息类型加入伙伴参数文件的出站参数 22 编写代码 23 把idoc设置成后台自动发送(TCODE:sm36) 24 察看IDOC发送情况(TCODE:WE02和sm59) 24 SAP网关配置 24 常见问题 28 附件 30 配置页面文件 30 (9-Dec-96) 30 Company Confidential - For internal use only 基本概念介绍 SAP IDoc介绍 IDoc的全称是Intermediate Document,是SAP用于传输业务数据的一种数据格式。 IDoc主要功能 IDoc主要用于系统间的数据同步,数据发起方是SAP,接受方是另一方系统。 举例来说,在一个特定的SAP服务器配置了IDoc之后,当一个SAP用户创建一张采购订单,其信息会自动通过IDoc传输给另一方系统,此系统根据接受到的数据,在本系统中自动创建一张销售订单。 IDoc文件例子 <?xml version="1.0"?> <MATMAS05> <IDOC BEGIN="1"> <EDI_DC40 SEGMENT="1"> <TABNAM>EDI_DC40</TABNAM> <MANDT>800</MANDT> <DOCNUM>0000000000940780</DOCNUM> <DOCREL>701</DOCREL> <STATUS>30</STATUS> <DIRECT>1</DIRECT> <OUTMOD>2</OUTMOD> <IDOCTYP>MATMAS05</IDOCTYP> <MESTYP>MATMAS</MESTYP> <SNDPOR>SAPIDS</SNDPOR> <SNDPRT>LS</SNDPRT> <SNDPRN>IDSCLNT800</SNDPRN> <RCVPOR>A000000071</RCVPOR> <RCVPRT>LS</RCVPRT> <RCVPRN>HANDMAS</RCVPRN> <CREDAT>20110620</CREDAT> <CRETIM>142202</CRETIM> <SERIAL>20110620142200</SERIAL> </EDI_DC40> <E1MARAM SEGMENT="1"> <MSGFN>005</MSGFN> <MATNR>000000000000002203</MATNR> <ERSDA>20110312</ERSDA> <ERNAM>3047</ERNAM> <LAEDA>20110312</LAEDA> <AENAM>3047</AENAM> <PSTAT>K</PSTAT> <MTART>FERT</MTART> <MBRSH>M</MBRSH> <MEINS>EA</MEINS> <BLANZ>000</BLANZ> <BRGEW>0.000</BRGEW> <NTGEW>0.000</NTGEW> <VOLUM>0.000</VOLUM> <WESCH>0.000</WESCH> <LAENG>0.000</LAENG> <BREIT>0.000</BREIT> <HOEHE>0.000</HOEHE> <ERGEW>0.000</ERGEW> <ERVOL>0.000</ERVOL> <GEWTO>0.0</GEWTO> <VOLTO>0.0</VOLTO> <FUELG>0</FUELG> <STFAK>0</STFAK> <MHDRZ>0</MHDRZ> <MHDHB>0</MHDHB> <MHDLP>0</MHDLP> <VPSTA>K</VPSTA> <MSTDE>00000000</MSTDE> <MSTDV>00000000</MSTDV> <COMPL>00</COMPL> <MTPOS_MARA>NORM</MTPOS_MARA> <GEWTO_NEW>0.0</GEWTO_NEW> <VOLTO_NEW>0.0</VOLTO_NEW> <E1MARA1 SEGMENT="1"> <MAXC>0.000</MAXC> <MAXC_TOL>0.0</MAXC_TOL> <MAXL>0.000</MAXL> <MAXB>0.000</MAXB> <MAXH>0.000</MAXH> <QQTIME>0</QQTIME> </E1MARA1> <E1MAKTM SEGMENT="1"> <MSGFN>005</MSGFN> <SPRAS>1</SPRAS> <MAKTX>111</MAKTX> <SPRAS_ISO>ZH</SPRAS_ISO> </E1MAKTM> <E1MARMM SEGMENT="1"> <MSGFN>005</MSGFN> <MEINH>EA</MEINH> <UMREZ>1</UMREZ> <UMREN>1</UMREN> <LAENG>0.000</LAENG> <BREIT>0.000</BREIT> <HOEHE>0.000</HOEHE> <VOLUM>0.000</VOLUM> <BRGEW>0.000</BRGEW> <NEST_FTR>0</NEST_FTR> <MAX_STACK>0</MAX_STACK> <CAPAUSE>0.000</CAPAUSE> </E1MARMM> </E1MARAM> </IDOC> </MATMAS05> IDoc的数据结构 IDoc的数据结构分三个层次: 1. IDoc类型(idoc type) 2. 段(segment) 3. 字段(field) 不同的IDoc类型用于处理不同类型的信息。比如IDoc格式ORDERS01可用于采购订单(Purchase Order)和订单确认(Order Confirmation)。IDoc类型下可以定义一个或多个段。段类似于数据库中的表,段可以有层次结构,即段可以有父段,也可以有子段。段下定义一个或多个字段,类似于数据库中的表字段。 IDoc文件 一个IDoc文件包含两种数据: 1. 控制记录(Control Record):包含IDoc类型、伙伴端口、SAP R/3的版本等信息。对应上面文件中IDOC节点的第一个子节点。 2. 数据记录(Data Record):包含段和字段的数据信息。对应上面文件中的IDOC节点下除第一个子节点外的其余节点。 Aurora IDoc Aurora 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. 在插入临时表后,调用项自定义的客户化数据库package,把临时表中德数据插入到正式业务表中。 6. 在成功插入业务表后,再把解析的数据插入系统通用的接口表(FND_INTERFACE_HEADERS ,FND_INTERFACE_LINES ),作为数据备份。 7. 根据配置决定是否删除此xml文件。 8. 给sap方一个反馈信息,这个步骤可选。 注:以上七个步骤都是全自动化的操作,项目实施时只需要做两件事: 1. 配置对应关系 2. 编写客户化数据库package 项目实施 部署 从公司cvs下载最新的aurora_idoc项目 部署目录结构: bin Startup.bat和startup.sh shutdown.bat和shutdwon.sh MYSERVER.jcoServer BCE.jcoDestination log4j.properties(可选) WEB-INF uncertain.xml uncertain.local.xml aurora.plugin.sap.sync.idoc Idoc.config aurora.database datasource.config Aurora.feature service-logging.config lib aurora.jar classes12.jar(JDBC驱动) 其他jar包 classes feedback_proc_sample.proc fnd_idoc_feedbacks.bm 这个结构跟tomcat的结构基本类似,仅稍有不同: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.progid sap注册的ProgramID HAND1 jco.server.name SAP的服务器名字 IDS jco.server.gwhost IP 192.168.11.28 jco.server.gwserv 端口号 sapgw00 jco.server.unicode 编码 1 jco.server.repository_destination 指向<文件名称>.jcoDestination这个文件 BCE 参数 说明 例子 jco.client.lang 语言 EN jco.client.client 环境 800 jco.client.user 密码 1332 jco.client.passwd 用户 handsap jco.client.sysnr 端口号 00(加上sapgw就是MYSERVER .jcoServer中的jco.server.gwserv属性值) jco.client.ashost IP 192.168.11.28 5. BCE.jcoDestinat 开放端口 在service文件,它在windows和unix系统下路径分别是: 1. Windows系统在C:\Windows\System32\drivers\etc\service 2. unxi或linux在/etc/services 注:unix/linux刷新服务的命令: refresh –s inetd。如果这个命令没效果,请重启系统试试。 添加以下内容: sapdp00 3200/tcp sapdp01 3201/tcp sapdp02 3202/tcp sapdp03 3203/tcp sapdp04 3204/tcp sapdp05 3205/tcp sapdp06 3206/tcp sapdp07 3207/tcp sapdp08 3208/tcp sapdp09 3209/tcp sapdp10 3210/tcp sapdp11 3211/tcp sapdp12 3212/tcp sapdp13 3213/tcp sapdp14 3214/tcp sapdp15 3215/tcp sapdp16 3216/tcp sapdp17 3217/tcp sapdp18 3218/tcp sapdp19 3219/tcp sapdp20 3220/tcp sapdp21 3221/tcp sapdp22 3222/tcp sapdp23 3223/tcp sapdp24 3224/tcp sapdp25 3225/tcp sapdp26 3226/tcp sapdp27 3227/tcp sapdp28 3228/tcp sapdp29 3229/tcp sapdp30 3230/tcp sapdp31 3231/tcp sapdp32 3232/tcp sapdp33 3233/tcp sapdp34 3234/tcp sapdp35 3235/tcp sapdp36 3236/tcp sapdp37 3237/tcp sapdp38 3238/tcp sapdp39 3239/tcp sapdp40 3240/tcp sapdp41 3241/tcp sapdp42 3242/tcp sapdp43 3243/tcp sapdp44 3244/tcp sapdp45 3245/tcp sapdp46 3246/tcp sapdp47 3247/tcp sapdp48 3248/tcp sapdp49 3249/tcp sapdp50 3250/tcp sapdp51 3251/tcp sapdp52 3252/tcp sapdp53 3253/tcp sapdp54 3254/tcp sapdp55 3255/tcp sapdp56 3256/tcp sapdp57 3257/tcp sapdp58 3258/tcp sapdp59 3259/tcp sapdp60 3260/tcp sapdp61 3261/tcp sapdp62 3262/tcp sapdp63 3263/tcp sapdp64 3264/tcp sapdp65 3265/tcp sapdp66 3266/tcp sapdp67 3267/tcp sapdp68 3268/tcp sapdp69 3269/tcp sapdp70 3270/tcp sapdp71 3271/tcp sapdp72 3272/tcp sapdp73 3273/tcp sapdp74 3274/tcp sapdp75 3275/tcp sapdp76 3276/tcp sapdp77 3277/tcp sapdp78 3278/tcp sapdp79 3279/tcp sapdp80 3280/tcp sapdp81 3281/tcp sapdp82 3282/tcp sapdp83 3283/tcp sapdp84 3284/tcp sapdp85 3285/tcp sapdp86 3286/tcp sapdp87 3287/tcp sapdp88 3288/tcp sapdp89 3289/tcp sapdp90 3290/tcp sapdp91 3291/tcp sapdp92 3292/tcp sapdp93 3293/tcp sapdp94 3294/tcp sapdp95 3295/tcp sapdp96 3296/tcp sapdp97 3297/tcp sapdp98 3298/tcp sapdp99 3299/tcp sapgw00 3300/tcp sapgw01 3301/tcp sapgw02 3302/tcp sapgw03 3303/tcp sapgw04 3304/tcp sapgw05 3305/tcp sapgw06 3306/tcp sapgw07 3307/tcp sapgw08 3308/tcp sapgw09 3309/tcp sapgw10 3310/tcp sapgw11 3311/tcp sapgw12 3312/tcp sapgw13 3313/tcp sapgw14 3314/tcp sapgw15 3315/tcp sapgw16 3316/tcp sapgw17 3317/tcp sapgw18 3318/tcp sapgw19 3319/tcp sapgw20 3320/tcp sapgw21 3321/tcp sapgw22 3322/tcp sapgw23 3323/tcp sapgw24 3324/tcp sapgw25 3325/tcp sapgw26 3326/tcp sapgw27 3327/tcp sapgw28 3328/tcp sapgw29 3329/tcp sapgw30 3330/tcp sapgw31 3331/tcp sapgw32 3332/tcp sapgw33 3333/tcp sapgw34 3334/tcp sapgw35 3335/tcp sapgw36 3336/tcp sapgw37 3337/tcp sapgw38 3338/tcp sapgw39 3339/tcp sapgw40 3340/tcp sapgw41 3341/tcp sapgw42 3342/tcp sapgw43 3343/tcp sapgw44 3344/tcp sapgw45 3345/tcp sapgw46 3346/tcp sapgw47 3347/tcp sapgw48 3348/tcp sapgw49 3349/tcp sapgw50 3350/tcp sapgw51 3351/tcp sapgw52 3352/tcp sapgw53 3353/tcp sapgw54 3354/tcp sapgw55 3355/tcp sapgw56 3356/tcp sapgw57 3357/tcp sapgw58 3358/tcp sapgw59 3359/tcp sapgw60 3360/tcp sapgw61 3361/tcp sapgw62 3362/tcp sapgw63 3363/tcp sapgw64 3364/tcp sapgw65 3365/tcp sapgw66 3366/tcp sapgw67 3367/tcp sapgw68 3368/tcp sapgw69 3369/tcp sapgw70 3370/tcp sapgw71 3371/tcp sapgw72 3372/tcp sapgw73 3373/tcp sapgw74 3374/tcp sapgw75 3375/tcp sapgw76 3376/tcp sapgw77 3377/tcp sapgw78 3378/tcp sapgw79 3379/tcp sapgw80 3380/tcp sapgw81 3381/tcp sapgw82 3382/tcp sapgw83 3383/tcp sapgw84 3384/tcp sapgw85 3385/tcp sapgw86 3386/tcp sapgw87 3387/tcp sapgw88 3388/tcp sapgw89 3389/tcp sapgw90 3390/tcp sapgw91 3391/tcp sapgw92 3392/tcp sapgw93 3393/tcp sapgw94 3394/tcp sapgw95 3395/tcp sapgw96 3396/tcp sapgw97 3397/tcp sapgw98 3398/tcp sapgw99 3399/tcp 前台配置 前台配置需要: 一个基于Web的Aurora项目。在做配置时,确保此项目连接的数据库和Aurora IDoc连接的数据是一致的。 配置JCO功能。 1. 添加JCO相关文件 在WEB-INF目录下创建目录aurora.plugin.sap,然后在这个目录下创建sap.config文件,将SAP服务器的连接配置到文件中,内容如下: <?xml version="1.0" encoding="UTF-8"?> <jco:sap-config xmlns:jco="aurora.plugin.sap.jco3"> <instances> <jco:instance-config server_ip="192.168.11.11" sid="BP5" sap_client="300" userid="HAND.ZST" password="abc123" default_lang="ZH" max_conn="5" system_number="51"> </jco:instance-config> </instances> </jco:sap-config> 属性名 描述 server_ip SAP服务器的ip地址 sid 为当前sap实例命名,方便引用 sap_client SAP中client的概念 user_id Sap rfc用户名 password 密码 default_lang 设定jco连接语言 max_conn Jco连接池最大连接数 system_number Sap中系统标识 2. 修改uncertain.xml文件,添加黄色底色部分 <?xml version="1.0" encoding="UTF-8"?> <uncertain-engine name="hec"> <packages> <package-path classPath="aurora_plugin_package/aurora.plugin.jms" /> <package-path classPath="aurora_plugin_package/aurora.plugin.memcached" /> <package-path classPath="aurora_plugin_package/aurora.plugin.dataimport" /> <package-path classPath="aurora_plugin_package/aurora.plugin.export" /> <package-path classPath="aurora_plugin_package/aurora.plugin.touch" /> <package-path classPath="aurora_plugin_package/aurora.plugin.ldap" /> <package-path classPath="aurora_plugin_package/aurora.plugin.sap" /> <package-path classPath="aurora_plugin_package/aurora.plugin.excelreport" /> <package-path classPath="aurora_plugin_package/aurora.plugin.export.task" /> </packages> </uncertain-engine> 在系统中注册配置页面,效果如下: 1. 同步IDOC结构 打开“同步IDOC结构”功能,页面如下: 这个页面form中的参数请sap人员协助配置,具体可参考下图的参数: 点击段类型,查看段下的字段,效果如下: 这个功能主要是从SAP方获取IDoc的结构。 获取IDOC结构后,可以快速配置对应关系。 2. 配置对应关系 打开“IDOC对应关系”功能,管理SAP段和数据库表的对应关系。 建立对应关系后,Aurora IDoc在接收到IDoc数据时,能够根据对应关系,把段和字段的内容插入到数据库对应的表中。界面配置如下: 点击“快速生成对应表和对应关系”按钮后,系统依据IDOC结构,用动态SQL自动生成名称相同的表和字段结构。这些自动被创建的表统称为临时表。 3. 配置IDOC类型对应的存储过程 在数据根据对应关系插入到数据库的临时表中后,Aurora IDoc调用一个存储过程,把临时表中的数据插入到正式业务表中。这个存储过程,根据项目业务场景自行编写。 如果需要在同步完程序后,给sap方一个反馈,请配置“反馈程序”,文件目录在classes下。 配置页面如下: “有次序”这个属性表示,IDoc数据是否有严格的次序。如果某次同步IDOC数据发生异常后,下次再次接收到同一个IDoc类型的数据,是否处理?选中就是不处理,不选中,就是继续处理。 管理和监控 启动和关闭Aurora IDoc 1. 启动 进入bin目录,运行startup.bat或startup.sh文件 2. 停止 进入bin目录,运行shutdown.bat或shutdown.sh文件。 3. 查看日志 查看uncertain.local.xml中定义的log目录。 监控日志和数据 1. 查看aurora\web\bin\dev_jco_rfc.trc文件,可以获取与SAP交互出错信息。 2. 查看aurora\web\logs下,可以获取到AURORA抛出的信息 3. 查看fnd_idoc_files表可以获取到IDOC同步的步骤状态 注意:SAP方更改IDoc segment或者field后,需要重新启动Aurora IDoc才能正确接收到更新后的结构文件。 数据库表 起初配置表 表名 说明 fnd_idoc_segments IDOC 段结构表 fnd_idoc_fields IDoc字段结构表 fnd_idoc_segment_maps IDOC 段和数据库表对应关系表 fnd_idoc_field_maps IDOC 字段和数据库表字段对应关系表 fnd_idoc_types IDOC 类型对应的存储过程表 运行时表 表名 说明 fnd_idoc_servers IDOC 服务连接表 fnd_idoc_files 接收到的idoc文件表 fnd_interface_headers Aurora系统标准接口头表 fnd_interface_lines Aurora系统标准接口行表 fnd_idoc_trx_sample 仅测试用,假定是正式的业务表 SAP IDOC配置 配置接收/发送IDOC系统(TCODE: SALE) 定义接收逻辑系统: 输入一个逻辑系统名及其描述: 定义RFC目标系统(TCODE:SM59) SM59里有很多不同的连接类型: 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,而外部系统也配置与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: \\sapdevdb\sapmnt\QAS\SYS\global\ 其中黄色部分表示SAP环境 功能模块名可制定输出文件的格式 在出站:触发器中与RFC关联 创建段类型(TCODE:WE31) 系统的段类型以E1开头 自定义段类型以Z1开头 创建段类型后系统会自动创建E2或者Z2的段定义 创建IDOC类型(TCODE:WE30) IDOC类型是IDOC文件的结构定义和说明,根据不同的传输格式来定义IDOC类型 需要把刚才创建的段类型挂在IDOC类型下面 最小数量:该段的最小条目数 最大编号:该段得最大条目数 创建IDOC类型后,需要设置版本来发布该类型 发布后,该版本的IDOC结构无法更改,如要更改需取消发布,更改后再次设置版本 定义消息类(TCODE:WE81) 把基本类型分配给消息类型(TCODE:WE82) 分配模型视图(TCODE:BD64) 先创建模型视图然后添加消息类型 因为是SAP->外部系统,所以发送方式。输入发送方为当前SAP系统,接收方为目标系统(逻辑系统名) 点击菜单中的生成伙伴参数文件 点击执行,生成伙伴参数 把消息类型加入伙伴参数文件的出站参数 因为这里是单向发送IDOC,所以只需要维护出站参数。选择立即转换IDocs。 编写代码 REPORT  ZTEST_IDOC. TYPES:BEGIN OF TY_MATNR,        MATNR   TYPE  MAKT-MATNR,       END OF TY_MATNR. DATA:IT_MATNR TYPE STANDARD TABLE OF TY_MATNR,      WA_MATNR LIKE LINE OF IT_MATNR. SELECT MATNR UP TO 100 ROWS   INTO CORRESPONDING FIELDS OF TABLE IT_MATNR   FROM MAKT  WHERE SPRAS = 1. *************
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服