SAP BAPI是什么?
首先我们先看看对象是什么
对象:object,对象具有相关的状态和行为。开发中的对象通常用于指代(更准确地说,用于建模)现实世界中的对象。这些概念很容易理解,将日常生活中的对象反映到发展世界中。在现实世界中,你我都是独立的对象,都是人,身高体重几何,一天吃三五顿饭,每天做固定的事情。所以软件世界中的对象,你必须表现出它的状态和行为。
让我们来看看各种状态,我们用fields字段来表示,我们用methods方法来表示各种行为。也就是说,一个对象将自己的状态存储在fields中,并用methods来表示自己的行为。
在某些情况下,fields和methods也被称为variable和function。方法是基于对象的状态,是对象与外部对象互动的主要机制。也就是说,你做了什么,和别人互动了什么,只能通过你的行为。对象包装是指隐藏对象的内部状态,并要求所有交互通过对象的方式进行。这是基于对象编程的基本原理。
具体情况如何?首先给对象状态,然后提供改变状态的方法。让我们来看看我们的电动汽车。目前的状态是:当前的速度和当前的档位。然后我可以通过加速和换挡来改变我目前的状态。而新国标最大速度为25km/h,也就是说,如果我加速,我就不能超过这个速度。也就是说,我的加速方法是有限的,需要小于25。也就是说,与外部的交互有时受到内部状态的限制。
写在对象上的好处是什么?也就是说,将方法绑定到对象上,有以下好处:
1、模块化:一个对象的源代码可以独立于其他对象的源代码来编写和维护。一旦创建了对象,它就可以很容易地传输到系统中。
2、信息隐藏:通过只与对象交互,内部实现的细节保持外部世界隐藏。
3、代码重用:如果一个对象已经存在(可能由另一个软件开发人员编写),则该对象可以用于程序中。这允许专家实现/测试/调试复杂任务的特定对象,然后您可以相信这些对象在您的代码中运行。
4、可插拔性和调试简单性:如果特定对象有问题,您可以简单地将其从应用程序中删除,然后插入另一个对象作为替代对象。这类似于解决现实世界中的机械问题。如果螺栓坏了,你应该更换它,而不是整个机器。
如何使用BAPI?
BAPI是以function module的形式实现的,调用SAP的内部代码。根据使用的BAPI集,可以调用使用Business objects processing Framework定义的业务对象模型,或者调用使用程序、表和功能模块定义的旧模型。
BAPI公开的正式稳定接口,客户和第三方代码开发人员可以使用它们访问SAP业务对象,并与之建立接口。SAP也确保了这种方法在未来一直可用。
还有其他接口访问SAP基础表和非BAPI功能模块、程序和类别。但是,SAP并不能保证代码在未来总是可用的,或者被访问的对象总是存在的。使用上述非BAPI接口会导致内部功能模块签名变更,升级过程中会出现小问题或需要小补丁,使基于盖接口的代码失效。
BAPI只能在发布后使用,也就是说,SAP指定这些接口是可用的,并确保未来的稳定性。您可以通过查看功能模块BAPI的“属性”部分中的“发布日期”来检查发布状态。如果该字段为空,则BAPI尚未由SAP发布,因此不应使用。在高级业务应用程序编程(ABAP)语言中使用BAPI,开发人员用ABAP的cal function调用function module。此外,大多数bapi都支持远程,这意味着可以通过远程函数调用、web服务或SAPJava连接器来调用它们。