webservice原理_WebService登录时的语言问题

作为服务提供方,我们写的FM里可能包括:转换计量单位到内码、调用BAPI等操作。如果语言提供的不对,就可能导致计量单位转换失败,或者BAPI返回的消息是英文的。

其中,计量单位转换,在调用CUNIT这个转换例程时,倒是可以提供语言。

或者是通过SET LOCALE LANGUANGE '1'来把语言设置成中文。但是遇到CALL FUNCTION时,SY-LANGU又会变成英文了。

于是查问题,在TCODE:SICF->执行->default_host->sap->bc->srt->rfc->sap里找到了相关的服务,双击服务,里面的登录语言是英文。

18d7ed9d7bf9fcea5aa749ca7ef0afb5.png

于是想通过粗暴的手段来解决此问题,查到了语言是在表ICFSERVICE里存储的,然后更改其中的字段ICF_LANGU为1。 之后,再执行外部调用,SY-LANGU,依然为E。 再次激活WebService后,再尝试外部调用,依然不行。 又尝试了网上说的在URL后加&sap-language=ZH的字符串,依然不行。 于是网上搜资料,找到了一篇英文的解释这个东西的文档,终于解决了此问题。 首先,我们还需要对其基本原理做一下了解,即,WebService通过SOAP协议来进行交互,而SOAP协议是基于HTTP协议的。而我们作为SAP的服务提供方,一般只关注其BODY部分要传递的信封文件内容和格式,而忽略了其HEADER部分的HTTP层面的语言问题。 HTTP是支持连接用户设置其倾向的语言的。方法就是设置HEADER里的Accept-Language

0b79de38e90abc6a4a52c9b179857760.png

如上图,在SOAPUI里进行测试的时候,把Header里的Accept-Language设置为ZH,就可以了。 也就是说,服务调用方,可以自己设置自己的登录语言了。 而且,从SAP端固定一个服务的调用语言为英文或中文,而不允许调用方自己决定,也是不太合理的。

------------------------

ABAP文章汇总:

https://mp.weixin.qq.com/s/djmMeM0qfDxPPwxbjuJABA

Excel文章汇总:

https://mp.weixin.qq.com/s/NwJ0SzIrn9hVmaCMo-UYyA

网盘永久链接:

https://mp.weixin.qq.com/s/f_WwKZdwM-vPEstTjjz_eQ

关注公众号,点下方菜单打开上面的链接,更方便哦。

笔者微信:286503700(QQ同号)

如果喜欢,谢谢转发。

d3852dd9ac61923a44c486c3a8c77006.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值