ODI集成接口在执行SAP的时候抛出“安装ABAP程序不匹配”的错误信息。
适用于:
Oracle数据集成器-版本:10.1.3.5.2和更高【发行:10gR3和更高】
该文档的信息可适用于任何平台。
症状
在Oracle数据集成器(ODI)集成接口,SAP ABAP中读取数据,并使用标准的LKM“Oracle(SQLLDR)的SAP ERP的”或者” Oracle(SQLLDR)的SAP BW”。
在操作LKM的“提取数据”/“生成ABAP代码”的过程时产生下面的集成接口失败的消息:
安装ABAP程序接口定义不匹配。
原因
LKM生成的一个ABAP程序,这是SAP系统上的上传和执行。为了确保ODI接口定义匹配安装的ABAP程序,SAP 开放工具会比较生成的ABAP代码(甚至,如果它不上传)和安装的ABAP代码的校验。如果这些校验和不匹配,不匹配的接口定义安装的ABAP代码和接口执行失败。
有这样几种不匹配的可能原因:
修改后的ABAP程序接口是最后一次上传。例如LKM的选项UPLOAD_ABAP_CODE设置为false。
在使用SAP系统时非发展系统和上传被禁止(dataserver将弹性域“的SAP允许的ABAP上传”)在这种情况下产生的ABAP代码需要通过SAP CTS运到各自的SAP系统。请参阅ODI应用适配器参考指南, “控制的ABAP上传”这节会有更多细节说明。
在以前的上传有一个问题。
对于LKM的SAP BW的提取Infocube只支持单个过滤器,而你正在执行多个过滤器接口。在这种情况下就会抛出10285447错误。
解决方案
如果问题发生在开发环境中:
确保LKM的选项UPLOAD_ABAP_CODE
确保dataserver是弹性域“SAP所允许的ABAP上传”的设置
如果发生非发展环境的问题:
确保发展产生ABAP代码作为被运到非发展的SAP系统之前执行的ODI接口/场景。
如果你有多个过滤器的接口:
您将需要使用更新KM_LKM_SAP_BW_to_Oracle__SQLLDR_.xml LKM的SAP BW的10285447错误:从的InfoCube提取只支持单个过滤器。
10285447错误只在11.1.1.4.0修复。 SAP的10.1.3.6.6修复尚未实现。
10.1.3.6.6包装/释放,将取决于纳入。很幸运我们可以11.1.1.4.0这个版本进行补丁修复。但是我们可能将无法对10.1.3.6.7之前的版本进行修复。