背景
SAP调用本系统的异步SOAP服务,需要读取standard fault message, 获取异步服务的异常
原理
异步的fault message, 会记录到SOAP服务的Error log中,可以通过事务代码SRT_MONI或SRT_ELOG查询到;而通过SOAP服务代理类的protocol方法,很容易获取每次服务调用的唯一标识message id,再通过此ID获取log条目及详细的context信息。需要注意的是,异步服务执行时间很难确定,因此在commit服务操作后,需等待log写入DB,需要自行判断等待时间长短。此方案是偶然发现,并不是标准做法,仅供参考。
官方protocol参考:https://help.sap.com/viewer/12aa7f056c531014aa5bca7aee037e55/7.0.37/en-US/473d95b07e1a20cae10000000a155369.html
参考代码
lo_api->product_mdmbulk_replicate_requ(
input = ls_input
).
commit