Cross-system company code 0502 does not exist

最近参与了一个项目,是跟用友U8做财务凭证的接口。使用IDOC异步的方式,U8调用PI webservice,然后把数据抛给PI, PI把数据转换成IDOC的格式给到PLP.

先看下idoc的结构:

image

这个每个E1FISEG就会对应FI 凭证的一个Item;因为U8里面没有Profit center、post key的概念,所以这些字段是在用户那边hard code之后发出来的。

image

SAP这边做的很少,创建新的partner no.

1. 在创建partner no.之前先创建新的logical system; BD54; 当然这部操作只针对要创建logical system 类型的partner no. 倘若是VENDOR, CUSTOME这类的partner profile创建是不需要的。

image

image

2. 定义partner profile.

image

inbound message type这里选FIDCC1, 这里都是standard 配置。

image

配置好之后,U8发送过来的idoc在PLP这端报错,‘Cross-system company code 0502 does not exist’; 而同样的Message type和idoc结构,从PEP发送过来就没问题;

原因就是这个global company code不同引起的。

对比一下PEP发出的outbound idoc 这里的BUKRS 502;到了PLP之后idoc会自动转换为0502

clip_image002

image

后台配置

image

define global company code.

image

assign global code to local company code.

image

这样的话,对方系统就需要发送502 company code, 然后到了接收方后系统会自动map成0502;

U8发出的数据里面BUKRS 是0502,所以到了PLP后,系统无法根据0502去map。 结果就到cross system company code doesnt exist.

解决方法:只需要把U8发出来的BUKRS 修改为502即可;

===========================================================

参考:https://help.sap.com/saphelp_crm50/helpdata/ja/51/7a4041cf176e24e10000000a155106/content.htm?no_cache=true

image

原文地址:https://www.cnblogs.com/chrisrockdl/p/13625845.html